我正在将应用程序从OpenGLES 1.0转换为OpenGLES 2.0,我已经成功完成了大部分工作。令人讨厌的是,虽然有一些纹理(每次都有许多和相同的纹理)呈现黑色而不是任何有用的纹理。它们是小图像(大约32x32)和PNG格式的alpha通道,虽然它本身并不是唯一的,因为类似的图像加载正常。
我已将其缩小为GLUtils.texImage2D,在这些图片上返回1280错误,但我不明白为什么会导致问题。
有人能说出为什么会出现这种情况和/或可能的补救措施吗?是否可以手动使用GLES20.glTexImage2D(无论它做什么)?
答案 0 :(得分: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.
}
}