Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将opengl用于nana c++;图书馆?_Opengl_Nana - Fatal编程技术网

如何将opengl用于nana c++;图书馆?

如何将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

我正在为gui玩nana库

我还必须使用opengl,但是opengl有一个例子,那就是windows

我正在使用ubuntu linux。上面的示例调用
重新解释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中,您需要
    wglChoosePixelFormatARB
    。在Linux中,
    glXChooseFBConfig
  • 上下文。在窗户里
    wglCreateContextAttribsARB
    需要一个
    HDC
    并且在Linux
    glXCreateContextAttribsARB
    a
    显示
    ,与窗口不同
  • 如何将上下文设置为当前上下文
  • 如何“交换缓冲区”
你可以学到更多和更多。
如果您在OpenGL版本<3.2中找到关于这些问题的文档,请不要使用它。坚持使用“现代”OpenGL

nana的问题在于,您链接的示例似乎在Windows上运行良好(但旧的OGL)。没有关于Linux的任何消息。我认为您应该深入研究
nana的源代码,搜索它在
native\u handle()
上返回的内容。你最好在论坛上提问

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