如何将opengl用于nana c++;图书馆?
我正在为gui玩nana库 我还必须使用opengl,但是opengl有一个例子,那就是windows 我正在使用ubuntu linux。上面的示例调用如何将opengl用于nana c++;图书馆?,opengl,nana,Opengl,Nana,我正在为gui玩nana库 我还必须使用opengl,但是opengl有一个例子,那就是windows 我正在使用ubuntu linux。上面的示例调用重新解释cast(fm.native\u handle()) 我终于找到了 根窗口连接到操作系统/窗口系统本机窗口,本机句柄返回本机窗口的句柄。 在某个系统中,本机\u窗口\u类型可以转换为系统本机句柄类型 auto reinterpret_cast<HWND>(root_widget.native_handle()); //Win
重新解释cast
(fm.native\u handle()
)
我终于找到了
根窗口连接到操作系统/窗口系统本机窗口,本机句柄返回本机窗口的句柄。
在某个系统中,本机\u窗口\u类型可以转换为系统本机句柄类型
auto reinterpret_cast<HWND>(root_widget.native_handle()); //Windows
auto reinterpret_cast<Window>(root_widget.native_handle()); //Linux/X11
auto reinterpret_cast(root_widget.native_handle())//窗户
自动重新解释\u转换(root\u widget.native\u handle())//Linux/X11
我可能会在窗口和窗口之间得到提示
如果我使用窗口(X11),我可以在
nana
库上实现opengl
要创建一个使用OpenGL的应用程序,您需要非常简单的至少四件事:
- 像素格式,描述颜色大小、Z缓冲区大小、多重采样,
在Windows中,您需要
。在Linux中,wglChoosePixelFormatARB
glXChooseFBConfig
- 上下文。在窗户里
需要一个wglCreateContextAttribsARB
并且在LinuxHDC
aglXCreateContextAttribsARB
,与窗口不同显示
- 如何将上下文设置为当前上下文
- 如何“交换缓冲区”
如果您在OpenGL版本<3.2中找到关于这些问题的文档,请不要使用它。坚持使用“现代”OpenGL nana的问题在于,您链接的示例似乎在Windows上运行良好(但旧的OGL)。没有关于Linux的任何消息。我认为您应该深入研究
nana的源代码,搜索它在native\u handle()
上返回的内容。你最好在论坛上提问
上面我展示的函数不是直接可用的,您必须查询它们的函数指针。
许多现代OGL函数也需要检索它们的函数指针。看