我想创建opengl 2d库,其中纹理和窗口被封装为对象。是否可以创建虚拟静态DC并在加载纹理时使其成为当前状态?所有窗口都与静态窗口具有相同的PIXELFORMATDESCRIPTOR
。这样,库的用户不必在加载纹理或将窗口作为参数传递给纹理之前创建窗口。
答案 0 :(得分:1)
是否可以创建虚拟静态DC并在加载纹理时使其成为当前状态?
排序。只要设备上下文的可视格式彼此兼容,您就可以将为此可视格式创建的OpenGL渲染上下文绑定到任何这些设备上下文。
因此,您可以完美地创建一个窗口,其中DC从未在屏幕上显示(始终保持隐藏状态,大小为0×0),并将其用于后台OpenGL操作。您还可以创建辅助OpenGL上下文,让它与主上下文共享其命名空间,使其在单独的工作线程上的隐藏窗口上显示,以便您可以异步执行OpenGL操作(如加载纹理),同时主上下文是用于其他事情。