interface GLSurfaceView.Renderer
2017-06-02 09:43
651 查看
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必须重新创建任何已经丢失了的上被需要的资源。这一操作放在
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)
参数:
gl:GL接口 GL10 表示遵从OpenGL ES 1.0 标准。
void onDrawFrame(GL10 gl);
当绘制一帧图像的时候会调用本方法。
本方法通常实现如下:
参数
gl:GL接口 GL10 表示遵从OpenGL ES 1.0 标准。
http://blog.csdn.net/column/details/apidemoopengl.html
Android4游戏入门经典(第三版)
一个通用的渲染接口
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.htmlhttp://blog.csdn.net/column/details/apidemoopengl.html
Android4游戏入门经典(第三版)
相关文章推荐
- Android GLSurfaceView.Renderer
- GLSurfaceView.Renderer
- android.opengl.GLSurfaceView.Renderer概述
- Android GLSurfaceView.Renderer
- An OpenGL ES renderer based on the GLSurfaceView rendering framework.
- An OpenGL ES renderer based on the GLSurfaceView rendering framework.
- Android GLSurfaceView.Renderer
- Android GLSurfaceView.Renderer 类 onDrawFrame 方法的刷新机制
- An OpenGL ES renderer based on the GLSurfaceView rendering framework.
- GLSurfaceView.Renderer,openGL的渲染接口
- Android Dev Intro - An OpenGL ES renderer based on the GLSurfaceView rendering framework
- android GLSurfaceView显示图片的问题!!!!
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——2.1 使用GLSurfaceView和MediaPlayer播放一个平面视频(上)
- Android 5.0(Lollipop)中的SurfaceTexture,TextureView, SurfaceView和GLSurfaceView
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 《iOS Human Interface Guidelines》——Container View Controller
- Android之GLSurfaceView立方体图片纹理测试代码
- Android中GLSurfaceView截图
- 音视频直播技术--SurfaceView、GLSurfaceView与TextureView