windows - Windows 内部的 OpenGL

标签 windows opengl

我正在 Windows 上创建一个 OpenGL 应用程序。我不能使用 GLUT,因为我想渲染到多个窗口。我知道如何使用 wgl 来做到这一点,但它非常困惑,我想知道引擎盖下发生了什么。

首先,我必须创建一个具有所需像素格式的窗口。然后我将此窗口连接到 OpenGL,一切正常。驱动程序如何知道在哪里渲染?窗口数据存储在哪里?我正在寻找某种解释,但找不到任何好的解释。

最佳答案

I know how to do it by using wgl, but it is very messy and I would like to know what is happening under the hood.

WGL 就像它得到的那样“在引擎盖下”。这是用于从 HWND 创建 OpenGL 上下文的 接口(interface)。你不能再低级了。

How does the driver know, where to render? Where are the window data stored?

设备上下文 HDC 是在 HWND 上完成渲染的方式。请注意,wglMakeCurrent 采用 HDC,它不必必须是创建上下文的 HDC(它必须使用相同的像素格式)。所以“在哪里渲染”来自那个函数。

这些东西都存储在 Windows 内部和 OpenGL 的 Windows 可安装客户端驱动程序模型中。你不能戳它、修改它,甚至看它。您可以简单地使用它。

关于windows - Windows 内部的 OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8913995/

相关文章:

c++ - 使用 GLM 功能放大 OpenGL 中的当前鼠标位置

c++ - opengl 4.1 替代方案将图像存储在 GPU 中以供以后访问、处理和渲染?

c# - 注册设备特定的自动播放处理程序

windows - 通过 PowerShell 脚本启用 TLS 和禁用 SSL

java - 如何在OpenGL中将纹理加载到对象

algorithm - 使用 GLSL 组成图 block 的纹理坐标

windows - ActiveState Perl CPAN dmake 不工作

windows - cmd 窗口上的 Git

c++ - 将 2 个 int 值从子进程传递给父进程的方法

c++ - 如何在 SDL 2 中获取并保存 BMP 屏幕截图?