关于网友提出的“android opengl 2d纹理的问题”问题疑问,本网通过在网上对“android opengl 2d纹理的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:android opengl 2d纹理的问题
描述: 我想在屏幕上贴一张纹理,不过没有成功,屏幕只显示黑色,环境android 2.2。
render类代码如下:
public final class RenderView extends GLSurfaceView implements GLSurfaceView.Renderer {
public RenderView(Context context) {
super(context);
// TODO Auto-generated constructor stub
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
this.setRenderer(this);
}
private static final String TAG = "RenderView";
private Bitmap bitmap;
/** Renders a frame of the UI. */
// @Override
public void onDrawFrame(GL10 gl1) {
gl1.glClear(GL11.GL_DEPTH_BUFFER_BIT);
gl1.glEnable(GL11.GL_SCISSOR_TEST);
gl1.glScissor(0, 0, getWidth(), getHeight());
//gl1.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
gl1.glEnable(GL11.GL_BLEND);
((GL11Ext)gl1).glDrawTexfOES(0, 0, 0, bitmap.getWidth()*2, bitmap.getHeight()*2);
gl1.glDisable(GL11.GL_BLEND);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
// TODO Auto-generated method stub
}
int[] textures = new int[1];
@Override
public void onSurfaceCreated(GL10 gll, EGLConfig config) {
// TODO Auto-generated method stub
GL11 gl = (GL11) gll;
//Generate one texture pointer...
int[] cropRect = { 0, bitmap.getHeight(), bitmap.getWidth(), -bitmap.getHeight() };
// Upload the bitmap to a new texture.
gl.glGenTextures(1, textures, 0);
gl.glBindTexture(GL11.GL_TEXTURE_2D, textures[0]);
gl.glTexParameteriv(GL11.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, cropRect, 0);
gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP_TO_EDGE);
gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
GLUtils.texImage2D(GL11.GL_TEXTURE_2D, 0, bitmap, 0);
//Clean up
bitmap.recycle();
}
}
解决方案1: 文理不是要贴在你画的图形上么 你好像只是建了文理 没有贴在任何地方阿
GL11 感觉很生疏 哎
解决方案2: 我记得onDrawFrame里是不用再bind的 你这个 gl.glTexCoordPointer 还有gl.glEnableClientState放哪里了 能贴出来看看么?
解决方案3: 看这里
以上介绍了“android opengl 2d纹理的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/884795.html