笔记,安卓上简单的surfaceview使用

建立基于GLSurfaceView的类:

public class MyGLSurfaceView extends GLSurfaceView {

初始化:

1. onSurfaceCreated:

a) mProgram = createProgram(mVertexShader, mFragmentShader);
   vao, vertex, coords handle
b) textures
   GLES30.glGenTextures(1, textures, 0);
   mTextureID = textures[0];
   GLES30.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
   GLES30.glTexParameterf( ... // configure
c) SurfaceTexture mSurface;
   mSurface = new SurfaceTexture(mTextureID);
   mSurface.setOnFrameAvailableListener(this);


显示:

2. onDrawFrame:
a) mSurface.updateTexImage();

    得到一个oes纹理, 然后用这个oes纹理进行绘制
b) GLES30.glUseProgram(mProgram);
c) GLES30.glActiveTexture(GLES30.GL_TEXTURE0);
   GLES30.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
d) GLES30.glVertexAttribPointer(handle 
   GLES30.glEnableVertexAttribArray(handle
e) PVM
   Matrix.setLookAtM(mVMatrix,...
   Matrix.frustumM(mProjMatrix,...
   Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);   
f) GLES30.glDrawArrays(GLES30.GL_TRIANGLES, ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值