我刚刚在刚起步的应用程序的GL界面中发现了一个小问题。在桌面GL上,例如glShaderSource()会使用GLchar *,但是在移动GLES接口上,它们会使用纯字符*。

现在,这确实是一件非常琐碎的事情。由于GLchar无论如何都是char的typedef,因此可以只在桌面GL上使用char *,并且在任何地方都可以。

但是,看到此问题使我担心在GL vs GLES领域遇到其他兼容性问题。当然,我知道GLES 2.0本质上是精简的OpenGL 2.0,并且我将不得不遭受诸如固定功能管道之类的损失。但是那会变得更糟吗?我希望GLES 2.0留给我的接口至少可以与台式机GL对应的接口相同。但是确实如此吗?我当然希望如此。

最佳答案

但是确实如此吗?


没有。

例如,glTexSubImage2D在ES 2.0中不能像在桌面GL中那样工作。内部格式和像素格式参数采用完全不同的值,这些值在大多数情况下对于桌面GL不合法。

您不应期望ES 2.0代码在桌面GL上运行而不会发生变化。

07-28 03:46