25 #include "ldDocument.h" |
25 #include "ldDocument.h" |
26 #include "miscallenous.h" |
26 #include "miscallenous.h" |
27 #include "glRenderer.h" |
27 #include "glRenderer.h" |
28 #include "dialogs.h" |
28 #include "dialogs.h" |
29 |
29 |
30 struct GLErrorInfo |
30 struct GlErrorInfo |
31 { |
31 { |
32 GLenum value; |
32 GLenum value; |
33 QString text; |
33 QString text; |
34 }; |
34 }; |
35 |
35 |
36 static const GLErrorInfo g_GLErrors[] = |
36 static const GlErrorInfo GlErrorMessages[] = |
37 { |
37 { |
38 { GL_NO_ERROR, "No error" }, |
38 { GL_NO_ERROR, "No error" }, |
39 { GL_INVALID_ENUM, "Unacceptable enumerator passed" }, |
39 { GL_INVALID_ENUM, "Unacceptable enumerator passed" }, |
40 { GL_INVALID_VALUE, "Numeric argument out of range" }, |
40 { GL_INVALID_VALUE, "Numeric argument out of range" }, |
41 { GL_INVALID_OPERATION, "The operation is not allowed to be done in this state" }, |
41 { GL_INVALID_OPERATION, "The operation is not allowed to be done in this state" }, |
100 GLCompiler::~GLCompiler() |
100 GLCompiler::~GLCompiler() |
101 { |
101 { |
102 glDeleteBuffers (g_numVBOs, &m_vbo[0]); |
102 glDeleteBuffers (g_numVBOs, &m_vbo[0]); |
103 CHECK_GL_ERROR(); |
103 CHECK_GL_ERROR(); |
104 |
104 |
105 if (m_renderer != null) |
105 if (m_renderer != nullptr) |
106 m_renderer->setCompiler (null); |
106 m_renderer->setCompiler (nullptr); |
107 } |
107 } |
108 |
108 |
109 // ============================================================================= |
109 // ============================================================================= |
110 // |
110 // |
111 uint32 GLCompiler::colorToRGB (const QColor& color) |
111 uint32 GLCompiler::colorToRGB (const QColor& color) |
164 if (topobj->color() == MainColor()) |
164 if (topobj->color() == MainColor()) |
165 qcol = GLRenderer::getMainColor(); |
165 qcol = GLRenderer::getMainColor(); |
166 else |
166 else |
167 qcol = topobj->color().faceColor(); |
167 qcol = topobj->color().faceColor(); |
168 } |
168 } |
169 elif (poly.color == EdgeColorIndex) |
169 else if (poly.color == EdgeColorIndex) |
170 { |
170 { |
171 qcol = Luma (QColor (cfg::BackgroundColor)) > 40 ? Qt::black : Qt::white; |
171 qcol = Luma (QColor (cfg::BackgroundColor)) > 40 ? Qt::black : Qt::white; |
172 } |
172 } |
173 else |
173 else |
174 { |
174 { |
201 |
201 |
202 double blendAlpha = 0.0; |
202 double blendAlpha = 0.0; |
203 |
203 |
204 if (topobj->isSelected()) |
204 if (topobj->isSelected()) |
205 blendAlpha = 1.0; |
205 blendAlpha = 1.0; |
206 elif (topobj == m_renderer->objectAtCursor()) |
206 else if (topobj == m_renderer->objectAtCursor()) |
207 blendAlpha = 0.5; |
207 blendAlpha = 0.5; |
208 |
208 |
209 if (blendAlpha != 0.0) |
209 if (blendAlpha != 0.0) |
210 { |
210 { |
211 QColor selcolor (cfg::SelectColorBlend); |
211 QColor selcolor (cfg::SelectColorBlend); |
247 |
247 |
248 // ============================================================================= |
248 // ============================================================================= |
249 // |
249 // |
250 void GLCompiler::compileDocument (LDDocumentPtr doc) |
250 void GLCompiler::compileDocument (LDDocumentPtr doc) |
251 { |
251 { |
252 if (doc == null) |
252 if (doc == nullptr) |
253 return; |
253 return; |
254 |
254 |
255 for (LDObjectPtr obj : doc->objects()) |
255 for (LDObjectPtr obj : doc->objects()) |
256 compileObject (obj); |
256 compileObject (obj); |
257 } |
257 } |
258 |
258 |
259 // ============================================================================= |
259 // ============================================================================= |
260 // |
260 // |
261 void GLCompiler::compileStaged() |
261 void GLCompiler::compileStaged() |
262 { |
262 { |
263 RemoveDuplicates (m_staged); |
263 removeDuplicates (m_staged); |
264 |
264 |
265 for (auto it = m_staged.begin(); it != m_staged.end(); ++it) |
265 for (auto it = m_staged.begin(); it != m_staged.end(); ++it) |
266 { |
266 { |
267 if (*it == null) |
267 if (*it == nullptr) |
268 continue; |
268 continue; |
269 |
269 |
270 compileObject (*it); |
270 compileObject (*it); |
271 } |
271 } |
272 |
272 |
329 // |
329 // |
330 void GLCompiler::compileObject (LDObjectPtr obj) |
330 void GLCompiler::compileObject (LDObjectPtr obj) |
331 { |
331 { |
332 // print ("Compile %1\n", g_objectOrigins[obj]); |
332 // print ("Compile %1\n", g_objectOrigins[obj]); |
333 |
333 |
334 if (obj == null or obj->document() == null or obj->document().toStrongRef()->isImplicit()) |
334 if (obj == nullptr or obj->document() == nullptr or obj->document().toStrongRef()->isImplicit()) |
335 return; |
335 return; |
336 |
336 |
337 ObjectVBOInfo info; |
337 ObjectVBOInfo info; |
338 info.isChanged = true; |
338 info.isChanged = true; |
339 dropObject (obj); |
339 dropObject (obj); |