interface GLSurfaceView.Renderer
来源:互联网 发布:维克软件 编辑:程序博客网 时间:2024/06/05 21:59
public interface GLSurfaceView.Renderer
- 一个通用的渲染接口
- Renderer被OpenGL调用渲染帧。
- 和GLServiceView协同使用的时候一般开发这负责实现这个借口,并通过GLServiceView.setRenderer()方法注册自己的实现类。
- OpenGL ES GUI-https://developer.android.com/guide/topics/graphics/opengl.html
- Renderer运行在独立的线程中,这样渲染线程和UI现成解耦。用户的操作指令一般由UI线程接受并通过UI线程和Renderer通信。开发者可以使用任何标准的java线程间通信技术(或者queueEvent(Runnable) )完成和Renderer的信息交互。
- OpenGL ES 是被设计运行在单线程中,而且是现成不安全的,永远不要在另一个线程中调用OpenGL ES
- 在某些情况下会发生EGL Renderer上下文丢失的现象。(例如正在使用Renderer的设备睡眠后被唤醒)。当EGL 上下文丢失后所有和其相关的的OpenGL资源(例如纹理texture)都会被删除。
- 为了保证正确的渲染,Renderer必须重新创建任何已经丢失了的上被需要的资源。这一操作放在
onSurfaceCreated(GL10, EGLConfig)
是很方便的。
void onSurfaceCreated(GL10 gl, EGLConfig config)
- 当serface创建和重新创建的时候被调用。
- 当Renderer线程start以及EGL上下文丢失的时候调用。EGL上下文的丢失一般发生在Android设备息屏亮屏的过程中。
- 因为本方法是在Renderer启动以及EGL上下文丢失的时候被调用,初始化OpenGL资源的代码放在这里就很方便了。纹理(Texture)资源的处理或许代码或许就是你想放在这里的内容。
- 注意:当EGL上下文丢失的时候所有和上下文相关的资源都会被自动删除,你没必要去调用glDelete****()方法手动删除已丢失的资源。
- 参数
- gl:GL接口 GL10 表示遵从OpenGL ES 1.0 标准。
- surface的EGLConfig,用来创建匹配的缓冲。
void onSurfaceChanged(GL10 gl, int width, int height);
- 当surface尺寸改变的时候调用。
- 当surface被创建时和surface尺寸改变时都会调用本方法。
- 通常会在这里设置视口(Viewport),如果相机(Camera)是固定的,也可以在这里设置投影矩阵(projection matrix)
void onSurfaceChanged(GL10 gl, int width, int height) { gl.glViewport(0, 0, width, height); // for a fixed camera, set the projection too float ratio = (float) width / height; gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10); }
- 参数:
- gl:GL接口 GL10 表示遵从OpenGL ES 1.0 标准。
void onDrawFrame(GL10 gl);
- 当绘制一帧图像的时候会调用本方法。
- 本方法通常实现如下:
void onDrawFrame(GL10 gl) { gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); //... other gl calls to render the scene ... }
- 参数
- gl:GL接口 GL10 表示遵从OpenGL ES 1.0 标准。
3D开发教程
- https://developer.android.com/guide/topics/graphics/opengl.html
- http://blog.csdn.net/column/details/apidemoopengl.html
- Android4游戏入门经典(第三版)
阅读全文
0 0
- interface GLSurfaceView.Renderer
- GLSurfaceView.Renderer
- Android GLSurfaceView.Renderer
- Android GLSurfaceView.Renderer
- android glsurfaceview renderer
- Android GLSurfaceView.Renderer
- android.opengl.GLSurfaceView.Renderer概述
- GLSurfaceView.Renderer,openGL的渲染接口
- OpenGL ES Tutorial - lesson 1 : 认识GLSurfaceView & Renderer
- OpenGL ES Tutorial - lesson 1 : 认识GLSurfaceView & Renderer
- An OpenGL ES renderer based on the GLSurfaceView rendering framework.
- Android GLSurfaceView.Renderer 类 onDrawFrame 方法的刷新机制
- GLSurfaceView
- GLSurfaceView
- GLSurfaceView
- GLSurfaceView
- GLSurfaceView
- GLSurfaceView
- redis配置自启动
- 常见的缓存
- Bootstrap中时间控件
- iOS全屏滑动返回
- 线程安全
- interface GLSurfaceView.Renderer
- 设计模式详解——适配器模式
- Android高效加载大图、多图解决方案,有效避免程序OOM
- 解决window10 ,javac 不是内部命令问题
- 谈谈那些年微信支付踩过的坑
- 用两张图告诉你,为什么你的App会卡顿?
- Bootstrap 表单验证formValidation 之比较两个input值的大小
- 如何在kylo中添加数据源
- Android MediaPlayer API 大全