我需要从窗口(或设备上下文)获取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. 如何从infopath窗体获取web上下文?
- 7. Carbon窗口(OS Lion,Mono)上的OpenGL 3.2上下文
- 8. 如何从Qt4传递OpenGL上下文?
- 9. 如何从xid获取Gdk窗口?
- 10. 如何从InputMethodService获取窗口?
- 11. 如何从iPhone上的OpenGL ES上下文获取透明图像
- 12. 如何从ApplicationDbContext.OnConfiguring获取HTTP上下文?
- 13. 如何从意图获取上下文?
- 14. 如何从上下文获取FREContext?
- 15. 如何从ImageView获取上下文
- 16. 如何从子窗口获取GUI主窗口中的数据?
- 17. 如何使用javascript从父窗口获取子窗口url
- 18. 如何获取上下文
- 19. 如何获取上下文
- 20. 获取如何正确获取NSDocument与文档窗口相关的窗口
- 21. 从Spy ++窗口中获取文本
- 22. 从弹出窗口中获取文本
- 23. Python - 从窗口获取文本
- 24. 从无窗口控件获取文本
- 25. 最小的无窗口的OpenGL上下文初始化
- 26. OpenGL在一个窗口中的多个渲染上下文
- 27. SFML窗口中OPENGL上下文的大小
- 28. 获取上下文菜单的窗口句柄?
- 29. 获取WPF上下文菜单以打开win32子窗口?
- 30. 从窗口获取数据
你问你的问题的方式XY XY问题(http://xyproblem.info)。你有问题X,你认为做Y可能会帮助你解决X,但是你也不知道Y.你为什么问Y.只要告诉我们X. _ **什么是你实际上正在努力完成?** _ – datenwolf
为什么在这个问题上有投票和关闭票?这是一个非常好的问题。只是因为没有解决问题的办法,这并不是一个不合理的问题。如果你深入研究OpenGL窗口系统集成的细节,最终会出现这种情况。 – datenwolf