如何在android opengl es 2.0中更新位图绑定了哪些文本?
我一直在请求纹理id,它已经被显示,但现在我想更新已经显示的内容,例如如何在android opengl es 2.0中更新位图绑定了哪些文本?,android,opengl-es,Android,Opengl Es,我一直在请求纹理id,它已经被显示,但现在我想更新已经显示的内容,例如 private void initTexture(){ int-textureIds[]=新的int[1]; // 启用纹理 GLES20.glActiveTexture(GLES20.GL_TEXTURE0); GLES20.glGenTextures(1,textureIds,0); // 将绑定纹理(t未来[0]表示指针指向纹理数据的初始位置) mTextureID=textureID[0]; } public voi
private void initTexture(){
int-textureIds[]=新的int[1];
// 启用纹理
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
GLES20.glGenTextures(1,textureIds,0);
// 将绑定纹理(t未来[0]表示指针指向纹理数据的初始位置)
mTextureID=textureID[0];
}
public void freshTexture(){
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureID);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER,
GLES20.GL_NEAREST);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER,
GLES20.GL_NEAREST);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D,0,mLayerDrawable.getBitmap(),0);
onFreshView();
}
protected void doDraw() {
GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT|GLES20.GL_COLOR_BUFFER_BIT);
GLES20.glClearColor(163,156,158,255);
mGL20Factory.useProgram();
MatrixState.setInitStack();
MatrixState.transtate(mScreenPosition.getMoveX(mMoveX),mScreenPosition.getMoveY(mMoveY),0);
MatrixState.scale(mScale,mScale,0);
//将最终变换矩阵传入shader程序
GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, MatrixState.getFinalMatrixMM(), 0);
GLES20.glEnable(GLES20.GL_TEXTURE_2D);
GLES20.glVertexAttribPointer(mAttribPosition, 3, GLES20.GL_FLOAT, false, 0, mVerticeBuf);
GLES20.glVertexAttribPointer(mAttribTexCoord, 2, GLES20.GL_FLOAT, false, 0, mTextureCoodBuf);
GLES20.glEnableVertexAttribArray(mAttribPosition);
GLES20.glEnableVertexAttribArray(mAttribTexCoord);
//绑定纹理
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureID);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
GLES20.glDisableVertexAttribArray(mAttribPosition);
GLES20.glDisableVertexAttribArray(mAttribTexCoord);
}
另一种方法是,我使用GLUtils.texSubImage2D()方法,但没有使用它,从何处调用
freshTexture()
?确保代码在渲染线程中执行。例如,请参阅。非常感谢。它很有用。您在何处调用freshTexture()
from?确保代码在渲染线程中执行。例如,请参阅。非常感谢。这很有用。