2011-07-03 91 views
0

我正在将应用程序从OpenGLES 1.0转换为OpenGLES 2.0,并且我设法完成了大部分工作。令人烦恼的是,虽然有几个纹理(每次都有很多相同的纹理)会呈现黑色,而不是任何有用的东西。他们是小图像(大约32x32)和PNG格式的alpha通道,虽然这不是一个独特的权利,因为类似的图像加载正常。Android GLUtils.texImage2D在使用OpenGLES 2.0着色器时产生一些黑色纹理

我已经缩小到GLUtils.texImage2D在这些图像上返回一个1280错误,但我不明白它为什么会导致问题。

有人可以提出为什么这可能是发生和/或可能的补救措施?手动使用GLES20.glTexImage2D(不管它做什么)?

回答

4

我也有类似的问题,并通过加载我的图像解决它:

BitmapFactory.decodeResource(context.getResources(), R.drawable.resourceName) 

,而不是从样本代码(我的猜测是,这是你目前有):

InputStream is = mContext.getResources() 
     .openRawResource(R.raw.robot); 
    Bitmap bitmap; 
    try { 
     bitmap = BitmapFactory.decodeStream(is); 
    } finally { 
     try { 
      is.close(); 
     } catch(IOException e) { 
      // Ignore. 
     } 
    } 
+0

我认为那就是我最终做的 - 目前暂时不在工作中,但当我回来时,我会检查并在需要时将其标记为正确。 – batterj2

+0

后续工作:是的,当原始版本无法工作时,将其用作失效保护。 – batterj2

相关问题