这是导致我的(包装)的OpenGL调用GL_INVALID_OPERATION
:glTexImage2D导致GL_INVALID_OPERATION
GLTextures.TexImage2D(TexImage2DTarget.TEXTURE_2D, 0, TexImageInternalFormat.LUMINANCE_ALPHA, Width, Height, TexImageFormat.LUMINANCE_ALPHA, TexImagePixelType.UNSIGNED_BYTE, source.GetData());
这一呼吁在Windows上运行,但不能在iOS上,在Windows一切正常,并显示质感。我在iOS和Windows上使用相同的枚举值,甚至着色器也是一样的(在iOS上有一些精确提示)。此外,大多数纹理都在iOS上工作。
但规格说:'最重要的原因,使这些新的压缩格式 相同显示常规亮度和亮度-α 纹理元素是使应用程序能够无缝替代 新的压缩格式为现有GL_LUMINANCE和 GL_LUMINANCE_ALPHA textures.'此外,快速参考卡显示它支持:http://www.khronos.org/opengles/sdk/docs/reference_cards/OpenGL-ES-2_0-Reference-card.pdf –
请注意内部格式纹理不一定支持任何给定的GPU(PowerVR在你的情况)。 OpenGL驱动程序可能会尝试将亮度-α纹理转换为某些支持的内部格式,但在移动设备上,驱动程序通常不会这样做。我不使用iPhone,但在Android上,我总是通过检查GL扩展名来检查是否支持某些纹理格式,然后加载适当格式的纹理。请原谅我从另一个(Android)角度查看您的问题,在iPhone上OpenGL驱动程序可以更好。 – keaukraine
没问题,谢谢。但我认为它应该工作。很难找到在iOS上遇到相同问题的人。 –