我在带有 Android ICS 的 HTC One x 上看到了一个问题,但在我迄今为止测试的任何其他设备上都没有:
所有没有 alpha 通道(24 位 png)并且我没有启用 alpha 混合的纹理在该设备上都是白色的。请参阅下面我用来绘制纹理的代码,对于没有 alpha 通道的纹理,m_alpha_blend 为 false:
if (m_alpha_blend) {
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
}
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glBindTexture(GL10.GL_TEXTURE_2D, m_texture_id);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, m_texture_buffer);
... (drawing)
gl.glDisable(GL10.GL_TEXTURE_2D);
if (m_alpha_blend) {
gl.glDisable(GL10.GL_BLEND);
}