summaryrefslogtreecommitdiffstats
path: root/dev/MinGfx/doc/mainpage.md
blob: 8472c48dcb4e84f9870c7cc9ef3a40b738a623e1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
MinGfx Toolkit Documentation {#mainpage}
==========

## Getting Started
1. [libMinGfx Installation Guide](@ref installation)
2. [Create Your Own Graphics Program by Copying an Example](@ref example)
3. [Bookmark the API - The MinGfx Programming Reference Organized by Topic](@ref api)

## Programming Guide
* [MinGfx Programming Reference](@ref api)
* Adding NanoGUI Elements (buttons, sliders, other GUI widgets)
	- [NanoGUI Documentation](https://nanogui.readthedocs.io/en/latest/)
	- [NanoGUI GitHub Repo](https://github.com/wjakob/nanogui)
* Drawing Using NanoVG (for 2D vector graphics)
	- [NanoVG Documentation](https://github.com/memononen/NanoVG)
	- [nanovg.h -- the best place to see all the possible commands](https://github.com/memononen/nanovg/blob/master/src/nanovg.h)
* Drawing Using OpenGL (for 3D graphics)
    - [learnopengl.com](https://learnopengl.com/Introduction)
    - [Google for OpenGL 3.3 Guide](https://www.google.com/search?q=opengl+3.3+guide)


## Overview

The MinGfx Toolkit is a minimal library for writing cross-platform (Windows, OSX, linux) graphics programs with modern OpenGL 3.3+ support.  Application programmers should subclass from MinGfx::GraphicsApp, which provides callbacks for several styles of rendering and user interfaces.  On-screen graphical user interfaces can be created with built-in support for NanoGUI.  2D vector graphics rendering is supported by linking with NanoVG.  3D graphics rendering is supported via MinGfx::Mesh, MinGfx::Shader, MinGfx::Texture2D, and related classes.  Additionally, application programmers can do whatever custom 2D or 3D rendering is needed with direct calls to OpenGL.

The library is maintained by Prof. Daniel Keefe (dfk@umn.edu) and is used for instructional purposes in UMN computer science courses (CSci-4611, CSci-3081W, ...) as well as some research projects.  See LICENSE.txt for additional details.