Tue, 14 Feb 2017 08:15:58 +0200
Fixed the free camera icon not showing up anymore.
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
1 | /* | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
2 | * LDForge: LDraw parts authoring CAD | 
| 1072 | 3 | * Copyright (C) 2013 - 2017 Teemu Piippo | 
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
4 | * | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
5 | * This program is free software: you can redistribute it and/or modify | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
6 | * it under the terms of the GNU General Public License as published by | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
7 | * the Free Software Foundation, either version 3 of the License, or | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
8 | * (at your option) any later version. | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
9 | * | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
10 | * This program is distributed in the hope that it will be useful, | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
13 | * GNU General Public License for more details. | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
14 | * | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
15 | * You should have received a copy of the GNU General Public License | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
17 | */ | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
18 | |
| 
740
 
dbf9f1294d94
- apply #pragma once to glShared.h
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents: 
739 
diff
changeset
 | 
19 | #pragma once | 
| 
856
 
6bdc03091441
- and fixed compilation on linux systems too
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
855 
diff
changeset
 | 
20 | |
| 
1049
 
71946fed475a
Removed the USE_QT5 macro now that we're Qt5 only.
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1036 
diff
changeset
 | 
21 | #include <QOpenGLFunctions> | 
| 
1023
 
9450ac3cd930
Split grid stuff into a new class Grid in grid.cpp/grid.h
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
1014 
diff
changeset
 | 
22 | #include "basics.h" | 
| 
856
 
6bdc03091441
- and fixed compilation on linux systems too
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
855 
diff
changeset
 | 
23 | |
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
24 | class LDObject; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
25 | |
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
26 | struct LDPolygon | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
27 | { | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
28 | char num; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
29 | Vertex vertices[4]; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
30 | int id; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
31 | int color; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
32 | |
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
33 | inline int numVertices() const | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
34 | { | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
35 | return (num == 5) ? 4 : num; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
36 | } | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
37 | }; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
38 | |
| 
1123
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
39 | enum class VboClass | 
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
40 | { | 
| 
1123
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
41 | Lines, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
42 | Triangles, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
43 | Quads, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
44 | ConditionalLines, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
45 | _End | 
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
46 | }; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
47 | |
| 
1123
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
48 | MAKE_ITERABLE_ENUM(VboClass) | 
| 1033 | 49 | |
| 
1123
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
50 | enum class VboSubclass | 
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
51 | { | 
| 
1123
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
52 | Surfaces, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
53 | NormalColors, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
54 | PickColors, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
55 | BfcFrontColors, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
56 | BfcBackColors, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
57 | RandomColors, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
58 | Normals, | 
| 
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
59 | _End | 
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
60 | }; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
61 | |
| 
1123
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
62 | MAKE_ITERABLE_ENUM(VboSubclass) | 
| 1033 | 63 | |
| 
986
 
525921eae58c
Refactor GLRenderer and GLCompiler
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
968 
diff
changeset
 | 
64 | enum | 
| 
 
525921eae58c
Refactor GLRenderer and GLCompiler
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
968 
diff
changeset
 | 
65 | { | 
| 
1123
 
15e46ea3151f
Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
1119 
diff
changeset
 | 
66 | NumVbos = EnumLimits<VboClass>::Count * EnumLimits<VboSubclass>::Count | 
| 
986
 
525921eae58c
Refactor GLRenderer and GLCompiler
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
968 
diff
changeset
 | 
67 | }; | 
| 
 
525921eae58c
Refactor GLRenderer and GLCompiler
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
968 
diff
changeset
 | 
68 | |
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
69 | // KDevelop doesn't seem to understand some VBO stuff | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
70 | #ifdef IN_IDE_PARSER | 
| 
708
 
3155f2c05f89
- more debugging...
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents: 
706 
diff
changeset
 | 
71 | using GLint = int; | 
| 
 
3155f2c05f89
- more debugging...
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents: 
706 
diff
changeset
 | 
72 | using GLsizei = int; | 
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
73 | using GLenum = unsigned int; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
74 | using GLuint = unsigned int; | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
75 | void glBindBuffer (GLenum, GLuint); | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
76 | void glGenBuffers (GLuint, GLuint*); | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
77 | void glDeleteBuffers (GLuint, GLuint*); | 
| 
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
78 | void glBufferData (GLuint, GLuint, void*, GLuint); | 
| 
708
 
3155f2c05f89
- more debugging...
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents: 
706 
diff
changeset
 | 
79 | void glBufferSubData (GLenum, GLint, GLsizei, void*); | 
| 
706
 
d79083b9f74d
Merge ../ldforge into gl
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
80 | #endif |