我想将.PVR
图片用于纹理目的
为此,我使用PVRtextool
并将我的pvr
图片加载到drawables-mdpi中
现在,当我在我的项目中使用它时,应用程序崩溃了。
我错过了一些步骤吗? 请指导。
这是我遇到问题的加载纹理代码。 resource
包含.pvr
格式的图片。
static void loadTexture(GL10 gl, Context context, int[] resource)
{
gl.glGenTextures(n, textureIDs, 0);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;
for (int face = 0; face < n; face++)
{
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureIDs[face]);
bitmap[face] = BitmapFactory.decodeResource(
context.getResources(), resource[face],opts);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap[face], 0);
bitmap[face].recycle();
}
]
答案 0 :(得分:1)
您无法使用BitmapFactory.decodeResource()
格式。您必须使用openRawResource()
函数并将InputStream
传递给ETC1Util.loadTexture()
函数。
示例实现应位于/sdk/platforms/<version>/samples/CompressedTextureActivity.java
,或在线版本为here.