我有一个 win32 应用程序,我想在其中仅将 openGL 用于其矩阵堆栈而不用于任何渲染。也就是说,我想使用 openGL 来指定相机、视口(viewport)等,这样我就不必再做数学运算了。在创建场景时,我只想使用 gluProject 投影点并使用它。投影点被传递到另一个为我创建场景的库,所有窗口句柄都是由库本身创建的,我无权访问它。
问题是,Windows 需要一个设备上下文来进行初始化。但是,由于我没有使用 openGL 进行任何渲染,有没有一种方法可以在根本没有任何窗口句柄的情况下使用 openGL?
在没有任何显式初始化的情况下,当我使用 glGet 读回矩阵时,它返回一个垃圾。想过如何解决它吗?
最佳答案
I want to use openGL just for its matrix stack not for any rendering.
这不是 OpenGL 的目的。 OpenGL 是一种绘图/渲染 API,不是数学库。实际上,正是出于这个原因,整个矩阵数学的东西已经从最新的 OpenGL 版本(OpenGL-3 核心和更高版本)中剥离了。
做这个矩阵数学的东西也很简单,你可以用不到 1k 行的 C 代码写下来。为此滥用 OpenGL 绝对没有任何好处。
关于c++ - 用于矩阵堆栈的 openGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702857/