c++ - 如何将 GLES 包含在旧 GL 中

标签 c++ opengl-es

嗯,我对图形编程很陌生,我不太确定我对这个 GLES 的假设是否正确。但是,我如何正确包含它..因为我需要在程序中使用这个 glBlendFuncSeparator() 作为这个只能在 中找到的 glColorMask() 的替代品>GLES/gl2.h

还有一个.. 我可以在 PC 上使用 GLES 功能吗?因为我遇到的很多使用它的情况是在手机中编程等。

最佳答案

OpenGL ES 代码不需要太多工作就可以在 OpenGL 上运行,因为 OpenGL ES 基本上是 OpenGL 的子集。您想要的任何 OpenGL ES 功能也可以在 OpenGL 中使用。

但是,如果您正在编写 Windows 桌面应用程序,则必须警惕 Microsoft 提供的过时 header 。 Microsoft 的 OpenGL header 适用于 OpenGL 1.1,为了让您了解它有多么过时,OpenGL 1.2 于 1998 年发布。为了在 Windows 上编写现代 OpenGL 程序,您需要更新的 header 或一种获取指向所需函数的指针。 GLEW ( GLEW home page ) 是一个经常用于此目的的库。

您列出的函数应该在所有 OpenGL 实现上都可用(也许 Windows 上的软件 OpenGL 渲染器除外)。 glColorMask() ( man page ) 自版本 1.0 以来一直是 OpenGL 的一部分,而 glBlendFuncSeparate() ( man page ) 自版本 1.4 以来一直是 OpenGL 的一部分(您意思是“分开”,对吧?“分隔符”可能是一个拼写错误)。

如果您愿意,还有一些方法可以在桌面上创建 OpenGL ES 上下文。这有点棘手并且特定于平台,但创建普通的 OpenGL 上下文也是如此。

关于c++ - 如何将 GLES 包含在旧 GL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775299/

相关文章:

c++ - 模板链接列表编译错误

c# - 解码RTP G,711 A-Law数据包问题,c#和c++之间的区别

c++ - 'PolishStack' 不是类模板,虚函数幽灵错误

ios - glTexImage2D 导致 GL_INVALID_OPERATION

swift - 通过 Swift 设置 ARKit 方向

c++ - 如何在 C++ 中声明后初始化具有不同大小的 std::vector?

c++ 异常和 pthread_cancel 混淆

安卓 OpenGL : crazy aspect ratio after sleep

java - 绕任意轴旋转

swift - 为什么我最简单的着色器占用最多的处理能力