https://github.com/NSchertler/GeneralizedMotorcycleGraph
Revision ebd9979c9a23db6f8fa7ed0167965a7ad432bb76 authored by Nico Schertler on 05 April 2017, 08:16:54 UTC, committed by Nico Schertler on 05 April 2017, 08:16:54 UTC
# Conflicts: # src/common.cpp # src/screen.cpp
Tip revision: ebd9979c9a23db6f8fa7ed0167965a7ad432bb76 authored by Nico Schertler on 05 April 2017, 08:16:54 UTC
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Tip revision: ebd9979
usage.rst
Usage
========================================================================================
C++
----------------------------------------------------------------------------------------
There are effectively two ways that you can use NanoGUI in C++: have NanoGUI initialize
and manage the OpenGL context (and GLFW), or you do it manually.
1. If you are letting NanoGUI take over, you **must** call :ref:`function_nanogui__init`
before trying to do anything else. If you are managing OpenGL / GLFW yourself, make
sure you **avoid** calling this method.
2. Create an instance of :ref:`class_nanogui__Screen` (or a derivative class you have
written).
- NanoGUI managed OpenGL: call the explicit constructor.
- Self managed OpenGL: call the empty constructor.
- You must call the :func:`nanogui::Screen::initialize` method.
3. Add any Widgets, Buttons, etc. you want to the screen instance, and call the
:func:`nanogui::Screen::setVisible` and :func:`nanogui::Screen::performLayout`
methods of your instance.
4. Now that everything is ready, call :ref:`function_nanogui__mainloop`.
5. When all windows are closed, this function will exit, and you should follow it up
with a call to :ref:`function_nanogui__shutdown`.
:NanoGUI Managed OpenGL / GLFW:
Refer to :ref:`nanogui_example_2` for a concise example of what that all looks like.
:Self Managed OpenGL / GLFW:
Refer to :ref:`nanogui_example_3` for an as concise as possible example of what you
will need to do to get the :ref:`class_nanogui__Screen` to work.
Python
----------------------------------------------------------------------------------------
The Python interface is very similar to the C++ API. When you build NanoGUI with CMake,
a ``python`` folder is created with the library you ``import nanogui`` from. Though
there are implementation details that differ greatly, the documentation and build
process for the Python side is roughly the same. Refer to the
:ref:`nanogui_example_programs` and compare the source code for the two.
:ref:`nanogui_example_3` highlights the more notable differences between the APIs.
Specifically, that managing GLFW from Python has no meaning, as well as the main loop
for Python can easily be detached.
Computing file changes ...