如何将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,而在Linux glXCreateContextAttribsARB中需要Display,这与窗口不同。
  • 如何将上下文设置为当前。
  • 如何“交换缓冲区”。

您可以了解更多herehere。 如果您找到有关OpenGL版本<3.2的这些事项的文档,请不要使用它。坚持“现代”OpenGL。

nana的问题在于您链接的示例似乎适用于Windows(但旧的OGL)。没有任何关于Linux的消息。我认为你应该深入研究nana的源代码,寻找它在native_handle()上返回的内容。你更喜欢在论坛中提问。

我展示的上述函数不是直接可用的,你必须查询它们的函数指针。 许多现代OGL函数也需要检索它们的函数指针。见the wiki

以上是关于如何将opengl用于nana c ++库?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 C 数组映射到 C#?

如何使用node.js中的C ++库?

如何将结构从 Matlab 代码转换为 C 代码(使用 Matlab 编译器)

如何在 C 中正确初始化模型矩阵?

如何将 Lua FFI 与 C++ 函数一起使用

如何将C / C ++库代码封装为可在具有多个实例的单独线程中运行?