這是導致我的(包裝)的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上遇到相同問題的人。 –