您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Android >> android opengl 2d纹理的问题

android opengl 2d纹理的问题

来源:网络整理     时间:2016/4/27 18:37:02     关键词:Android,opengl

关于网友提出的“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

相关图片

相关文章