OpenGL在没有或有静态设备上下文的情况下加载纹理?
Posted
技术标签:
【中文标题】OpenGL在没有或有静态设备上下文的情况下加载纹理?【英文标题】:OpenGL load texture without or with static device context? 【发布时间】:2015-11-25 16:40:18 【问题描述】:我想创建 opengl 2d 库,其中纹理和窗口被封装为对象。是否可以创建虚拟静态 DC 并在加载纹理时使其成为当前状态?所有窗口都将具有与静态窗口相同的PIXELFORMATDESCRIPTOR
。这样,库的用户就不必在加载纹理或将窗口作为参数传递给纹理之前创建窗口。
【问题讨论】:
【参考方案1】:是否可以创建虚拟静态 DC 并在加载纹理时使其成为当前状态?
有点。只要设备上下文的视觉格式相互兼容,您就可以将为此视觉格式创建的 OpenGL 渲染上下文绑定到这些设备上下文中的任何一个。
因此,您可以完美地创建一个窗口,其 DC 从未在屏幕上显示(始终保持隐藏,大小为 0×0)并将其用于后台 OpenGL 操作。您还可以创建辅助 OpenGL 上下文,让它与主上下文共享其命名空间,使其在单独的工作线程上的隐藏窗口上成为当前上下文,以便您可以在主上下文时异步执行 OpenGL 操作(如加载纹理)用于其他用途。
【讨论】:
以上是关于OpenGL在没有或有静态设备上下文的情况下加载纹理?的主要内容,如果未能解决你的问题,请参考以下文章