我需要从窗口(或设备上下文)获取OpenGL上下文(一个HGLRC
)。函数wglGetCurrentContext
不能使用,因为我不知道上下文是否绑定到当前线程。如何才能做到这一点?如何从窗口获取OpenGL上下文?
-1
A
回答
0
您可以使用wglGetCurrentContext()
来检查是否存在当前绑定的上下文。但是没有任何功能可以用来检查HDC
是否与HGLRC
相关联。
这些都是关系的唯一功能,让对方:
HDC GetDC(HWND hWnd)
HWND WindowFromDC(HDC hdc)
// Depends on wglMakeCurrent()
HDC wglGetCurrentDC()
HGLRC wglGetCurrentContext()
所以你需要跟踪HGLRC
的创建后。
2
我需要从窗口(或设备上下文)获取OpenGL上下文(一个HGLRC)。
你不能!
OpenGL渲染环境在没有连接到windows的方式。
Windows可以有任意数量的设备上下文。至少有一个主要上下文,但可以随时创建其他上下文。
OpenGL渲染上下文可以在任意设备上下文(DC)上生效,但是在DC和OpenGL上下文之间没有严格的关系。只要任何给定窗口的设备上下文与某个OpenGL上下文兼容,OpenGL上下文就可以在设备上下文中变为当前。后来,如果需要的话,可以撤消该连接,并且可以在不同窗口的不同DC上使相同的OpenGL上下文同步(只要它们兼容)。
哦,它也可以用其他方法:可以有任意数量的线程,每个线程在同一个窗口/设备上下文中同时具有不同的OpenGL上下文。
在Windows和OpenGL上下文之间根本没有双射映射。
相关问题
- 1. 如何从窗口获取文本
- 2. 如何从窗口中获取文本?
- 3. 如何从全屏OpenGL窗口获取关键事件?
- 4. C++从设备上下文获取窗口句柄
- 5. OpenGL获取设备上下文
- 6. 如何从iPhone上的OpenGL ES上下文获取透明图像
- 7. 如何从ApplicationDbContext.OnConfiguring获取HTTP上下文?
- 8. 如何从意图获取上下文?
- 9. 如何获取上下文
- 10. 如何获取上下文
- 11. 获取如何正确获取NSDocument与文档窗口相关的窗口
- 12. Python - 从窗口获取文本
- 13. 从弹出窗口中获取文本
- 14. SFML窗口中OPENGL上下文的大小
- 15. 获取上下文菜单的窗口句柄?
- 16. 获取WPF上下文菜单以打开win32子窗口?
- 17. 获取System.Windows.Forms.IWin32Window从WPF窗口
- 18. 从NativeActivity获取上下文
- 19. Gtk +:如何从Cairo上下文设置窗口的光标?
- 20. 如何在不同窗口上获取输入文本?
- 21. 如何获取窗口,子菜单和上下文菜单的设备上下文?
- 22. 如何从具有特定HWND的窗口中获取文本?
- 23. 如何从sass文件获取窗口对象?
- 24. OpenGL子窗口
- 25. 获取窗口
- 26. 如何在无窗口的Windows窗体上获取Aero Glass?
- 27. 如何从使用X下的OpenGL的应用程序的不可见窗口获取屏幕截图?
- 28. 上下文或下拉窗口
- 29. 您可以在不打开窗口的情况下创建OpenGL上下文吗?
- 30. 如何获取服务器名称,端口和上下文
你问你的问题的方式XY XY问题(http://xyproblem.info)。你有问题X,你认为做Y可能会帮助你解决X,但是你也不知道Y.你为什么问Y.只要告诉我们X. _ **什么是你实际上正在努力完成?** _ – datenwolf
为什么在这个问题上有投票和关闭票?这是一个非常好的问题。只是因为没有解决问题的办法,这并不是一个不合理的问题。如果你深入研究OpenGL窗口系统集成的细节,最终会出现这种情况。 – datenwolf