aboutsummaryrefslogtreecommitdiffstats
path: root/dev/MinGfx/doc/api.md
blob: 58c78ebdeeff03c02ba9ef08b071da607b5e2ae6 (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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
API - MinGfx Programming Reference Organized by Topic {#api}
==========

# API by Topic

| Application Class |
|-------------------|
| [GraphicsApp](@ref mingfx::GraphicsApp) |


| 3D Models |
|-----------|
| [QuickShapes](@ref mingfx::QuickShapes) |
| [Mesh](@ref mingfx::Mesh)               |


| Color and Textures |
|--------------------|
| [Color](@ref mingfx::Color)         |
| [Texture2D](@ref mingfx::Texture2D) |


| Graphics Math |
|---------------|
| [Matrix4](@ref mingfx::Matrix4)       |
| [Point2](@ref mingfx::Point2)         |
| [Point3](@ref mingfx::Point3)         |
| [Vector2](@ref mingfx::Vector2)       |
| [Vector3](@ref mingfx::Vector3)       |
| [Ray](@ref mingfx::Ray)               |
| [Quaternion](@ref mingfx::Quaternion) |
| [GfxMath](@ref mingfx::GfxMath)       |


| Shader Programs |
|-----------------|
| [DefaultShader](@ref mingfx::DefaultShader) |
|  - [DefaultShader::LightProperties](@ref mingfx::DefaultShader::LightProperties) |
|  - [DefaultShader::MaterialProperties](@ref mingfx::DefaultShader::MaterialProperties) |
| [ShaderProgram](@ref mingfx::ShaderProgram) |


| User Interface |
|----------------|
| [CraftCam](@ref mingfx::CraftCam) |
| [UniCam](@ref mingfx::UniCam) |


| File I/O and System Routines |
|------------------------------|
| [Platform](@ref mingfx::Platform) |




# Coding Style

The library follows the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html), in part as an example for students, since this style is also used in several courses.  There are several things that programmers who are not familiar with the Google style might find unusual.  These are the most common style rules to note:
- C++ source filenames are all lowercase with underscores, and a .cc extension is used instead of .cpp.
- Variable names are all lowercase with underscores.
- Class member variables are named the same as regular variables but with a trailing _, as in my\_member\_var\_.
- Functions start with capital letters unless they are small getter or setter methods.
- There are many other rules, a solid discussion of pros/cons, and an automated style checker [here](https://google.github.io/styleguide/cppguide.html).