在通用Windows应用程序中使用OpenGL,角度:glLoadIdentity和glOrtho undefined

Using OpenGL in Universal Windows App with Angle : glLoadIdentity and glOrtho undefined

本文关键字:角度 glLoadIdentity glOrtho undefined OpenGL Windows 应用程序      更新时间:2023-10-16

我目前正在尝试将现有的OpenGL代码改编为通用Windows应用程序,使用Angle组件,该组件应该将OpenGL调用转换为DirectX。给我带来问题的一个基本函数是纹理中四边形的全屏显示(以便将着色器应用于该四边形(。常规的OpenGL代码很简单:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-viewWidth, viewWidth, -viewHeight, viewHeight, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
my_quad.RenderObject();

(RenderObject 绑定顶点和纹理坐标的相应缓冲区,然后调用 glDrawElements(。

该代码使用 OpenGL 和 Glut 在常规 Win32 应用程序中构建并运行良好。尝试在 Angle+UWP 中使用相同的代码时,编译器会返回基本函数的生成错误:

error C2065: 'GL_PROJECTION': undeclared identifier
error C3861: 'glMatrixMode': identifier not found
error C3861: 'glLoadIdentity': identifier not found
error C3861: 'glOrtho': identifier not found
error C2065: 'GL_MODELVIEW': undeclared identifier
error C3861: 'glMatrixMode': identifier not found
error C3861: 'glLoadIdentity': identifier not found
error C2065: 'GL_TEXTURE_ENV': undeclared identifier
error C2065: 'GL_TEXTURE_ENV_MODE': undeclared identifier
error C2065: 'GL_MODULATE': undeclared identifier
error C3861: 'glTexEnvf': identifier not found

我对OpenGL ES不太熟悉(显然(,但根据教程,应该支持glLoadIdentity等函数。我错过了什么吗?Angle 文件夹中的标头(gl2.h、glext.h 和 gl2platform.h(没有定义它们。

Angle 仅支持 OpenGL-ES 2.0 和 3.0(3.1 正在进行中(。由于 OpenGL-ES 2.0 删除了整个固定函数管道,因此 OpenGL-ES 2.0 或更高版本无法使用您正在使用的任何函数。查看 OpenGL-ES 2.0 参考。