使用
C++
在C++中有两种有效的方法可以使用NanoGUI:让NanoGUI初始化和管理OpenGL上下文(和GLFW),或者手动执行。
-
如果让NanoGUI接管,则必须先调用
NanoGUI::init()
,然后再尝试执行其他操作。如果您自己管理OpenGL/GLFW,请确保避免调用此方法。 -
创建
nanogui::Screen
的一个实例对象(或你写的派生类)。
- NanoGUI 管理 OpenGL: 调用显式构造函数.
- 手动管理 OpenGL: 调用空构造函数。
- 你必须调用
nanogui::Screen::initialize()
方法。
- 你必须调用
- 添加你想要在屏幕上显示的窗体、按钮等实例对象,然后调用
nanogui::Screen::setVisible()
和nanogui::Screen::performLayout()
方法 - 现在一切都准备好了, 调用
nanogui::mainloop()
. - 当所有窗口都关闭时,此函数将退出,随后应当调用`nanogui::shutdown()。
NanoGUI 管理 OpenGL / GLFW
Refer to Example 2 for a concise example of what that all looks like.
参考示例2来获得一个简明的示例。
手动管理 OpenGL / GLFW
Refer to Example 3 for an as concise as possible example of what you will need to do to get the nanogui::Screen to work.
请参阅示例3,以获得一个尽可能简洁的示例,示例说明至少需要做些什么才能使nanogui::Screen正常工作。
Python
Python接口与C++API非常相似。使用CMake构建NanoGUI时,将使用导入NanoGUI的库创建一个python文件夹。虽然实现细节差别很大,但Python端的文档和构建过程大致相同。请参阅示例并比较两者的源代码。
示例3强调了API之间更显著的差异。具体来说,从Python管理GLFW没有任何意义,而且可以轻松分离Python的主循环。