OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(八)

来源:互联网 发布:明星淘宝店叫什么名字 编辑:程序博客网 时间:2024/05/20 15:12

基础8——相机预览(GLSurfaceView+OpenGLES)


初始化都完成后,要开始真正的相机预览功能了。
相机预览通过GLSurfaceView的扩展继承类CameraGLSurfaceView
在扩展继承类CameraGLSurfaceView的构造器中:
设置OpenGLES版本
设置渲染器Renderer
设置渲染器Renderer的模式。
在重写方法onSurfaceCreated中:
初始化纹理属性设置,返回一个纹理ID
初始化一个SurfaceTexture绑定着这个纹理ID,并设置数据变化监听
初始化形状顶点、颜色顶点buffer、着色器shader、包含并逻辑链接着shader的program
初始化相机
在重写方法onSurfaceChanged中:
开启相机预览
在重写方法onDrawFrame中:
OpenGL设置背景色
擦除当前帧画面
surfaceTexture更新数据
获得更新数据的转换矩阵
OpenGL重新获取program
OpenGL重新获取活动纹理
OpenGL重新绑定纹理
获得program中的shader句柄并进行相应操作
通过植入事先准备好的buffer进行绘制
在重写方法onPause中:
停止相机预览
在重写方法onFrameAvailable中:
this.requestRender();
调用该句,重新执行onDrawFrame方法
至此,相机便可通过GLSurfaceView和OpenGLES来预览了,之后的拍照、渲染滤镜、渲染后的拍照、以及放大缩小变换,在下面讲,代码会在最后附上。

上一节

1 0
原创粉丝点击