77 lines
2.7 KiB
ReStructuredText
77 lines
2.7 KiB
ReStructuredText
NanoGUI
|
|
========================================================================================
|
|
|
|
NanoGUI is a minimalistic cross-platform widget library for OpenGL 3.x or higher. It
|
|
supports automatic layout generation, stateful C++11 lambdas callbacks, a variety of
|
|
useful widget types and Retina-capable rendering on Apple devices thanks to NanoVG_ by
|
|
Mikko Mononen. Python bindings of all functionality are provided using pybind11_.
|
|
|
|
.. _NanoVG: https://github.com/memononen/NanoVG
|
|
.. _pybind11: https://github.com/wjakob/pybind11
|
|
|
|
Example Screenshot
|
|
----------------------------------------------------------------------------------------
|
|
|
|
.. image:: ../resources/screenshot.png
|
|
:alt: Screenshot of Example 1.
|
|
:align: center
|
|
|
|
Description
|
|
----------------------------------------------------------------------------------------
|
|
|
|
NanoGUI builds on GLFW_ for cross-platform OpenGL context creation and event handling,
|
|
GLAD_ to use OpenGL 3.x or higher Windows, Eigen_ for basic vector types, and NanoVG_ to
|
|
draw 2D primitives.
|
|
|
|
Note that the dependency library NanoVG already includes some basic example code to draw
|
|
good-looking static widgets; what NanoGUI does is to flesh it out into a complete GUI
|
|
toolkit with event handling, layout generation, etc.
|
|
|
|
NanoGUI currently works on Mac OS X (Clang) Linux (GCC or Clang) and Windows (Visual
|
|
Studio ≥ 2015); it requires a recent C++11 capable compiler. All dependencies are
|
|
jointly built using a CMake-based build system.
|
|
|
|
.. _GLFW: http://www.glfw.org/
|
|
.. _GLAD: https://github.com/Dav1dde/glad
|
|
.. _Eigen: http://eigen.tuxfamily.org/index.php?title=Main_Page
|
|
|
|
"Simple mode"
|
|
----------------------------------------------------------------------------------------
|
|
|
|
Christian Schüller contributed a convenience class that makes it possible to create
|
|
AntTweakBar-style variable manipulators using just a few lines of code. Refer to
|
|
:ref:`nanogui_example_2` for how to create the image below.
|
|
|
|
.. image:: ../resources/screenshot2.png
|
|
:alt: Screenshot of Example 2.
|
|
:align: center
|
|
|
|
License
|
|
----------------------------------------------------------------------------------------
|
|
|
|
NanoGUI is provided under a BSD-style license that can be found in the LICENSE_ file. By
|
|
using, distributing, or contributing to this project, you agree to the terms and
|
|
conditions of this license.
|
|
|
|
.. _LICENSE: https://github.com/wjakob/nanogui/blob/master/LICENSE.txt
|
|
|
|
Contents
|
|
========================================================================================
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
|
|
usage
|
|
compilation
|
|
examples
|
|
generated_api/library_root
|
|
contributing
|
|
|
|
|
|
Indices and tables
|
|
==================
|
|
|
|
* :ref:`genindex`
|
|
* :ref:`modindex`
|
|
* :ref:`search`
|