如何将opengl用于nana c ++库?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将opengl用于nana c ++库?相关的知识,希望对你有一定的参考价值。
我在nana图书馆玩gui。
我还必须使用opengl,但是有一个opengl的例子,它适用于windows。 Link
我正在使用ubuntu linux。上面的例子叫reinterpret_cast<HWND>
(fm.native_handle()
);
我终于找到了它。
根窗口附加到OS / Windowing系统本机窗口,native_handle返回本机窗口的句柄。在某个系统中,native_window_type可以转换为系统本机句柄类型。
auto reinterpret_cast<HWND>(root_widget.native_handle()); //Windows
auto reinterpret_cast<Window>(root_widget.native_handle()); //Linux/X11
我可能会在HWND,Window之间得到提示。
如果我使用Window(X11),我可以在opengl
库上实现nana
吗?
答案
要创建一个使用OpenGL的应用程序,您需要非常简单,至少有四件事:
- 像素格式,描述颜色大小,Z缓冲区大小,多重采样等。在Windows中,您需要
wglChoosePixelFormatARB
。在Linux中,glXChooseFBConfig
。 - 背景。在Windows中,
wglCreateContextAttribsARB
需要HDC
,而在LinuxglXCreateContextAttribsARB
中需要Display
,这与窗口不同。 - 如何将上下文设置为当前。
- 如何“交换缓冲区”。
您可以了解更多here和here。 如果您找到有关OpenGL版本<3.2的这些事项的文档,请不要使用它。坚持“现代”OpenGL。
nana
的问题在于您链接的示例似乎适用于Windows(但旧的OGL)。没有任何关于Linux的消息。我认为你应该深入研究nana
的源代码,寻找它在native_handle()
上返回的内容。你更喜欢在论坛中提问。
我展示的上述函数不是直接可用的,你必须查询它们的函数指针。 许多现代OGL函数也需要检索它们的函数指针。见the wiki
以上是关于如何将opengl用于nana c ++库?的主要内容,如果未能解决你的问题,请参考以下文章