From 9997ef1b97153d4e36b0429fc91d4e6c46c98c19 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 10 Feb 2015 14:23:00 -0800 Subject: [PATCH 1/5] Increase size of text entity --- examples/editEntities.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/editEntities.js b/examples/editEntities.js index d73c6fa6e7..83550811f1 100644 --- a/examples/editEntities.js +++ b/examples/editEntities.js @@ -425,7 +425,7 @@ var toolBar = (function () { placingEntityID = Entities.addEntity({ type: "Text", position: grid.snapToSurface(grid.snapToGrid(position, false, DEFAULT_DIMENSIONS), DEFAULT_DIMENSIONS), - dimensions: { x: 0.5, y: 0.3, z: 0.01 }, + dimensions: { x: 0.65, y: 0.3, z: 0.01 }, backgroundColor: { red: 64, green: 64, blue: 64 }, textColor: { red: 255, green: 255, blue: 255 }, text: "some text", From 6eca8610b6b370b03fef10d320c87d24d8becb24 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 10 Feb 2015 15:54:04 -0800 Subject: [PATCH 2/5] Increase entity-resize timeout to 2 minutes --- examples/editEntities.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/editEntities.js b/examples/editEntities.js index 83550811f1..ea566c6702 100644 --- a/examples/editEntities.js +++ b/examples/editEntities.js @@ -245,7 +245,7 @@ var toolBar = (function () { }; var RESIZE_INTERVAL = 50; - var RESIZE_TIMEOUT = 20000; + var RESIZE_TIMEOUT = 120000; // 2 minutes var RESIZE_MAX_CHECKS = RESIZE_TIMEOUT / RESIZE_INTERVAL; function addModel(url) { var position; From 8016fb5e0d613e7f46a2f9d89c58864f5e9a7b6e Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Tue, 10 Feb 2015 17:35:27 -0800 Subject: [PATCH 3/5] fix color issues with quads --- libraries/render-utils/src/GeometryCache.cpp | 14 +++++---- libraries/render-utils/src/GeometryCache.h | 30 ++++++++++++++++---- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/libraries/render-utils/src/GeometryCache.cpp b/libraries/render-utils/src/GeometryCache.cpp index abf57843b7..1a51e9aed9 100644 --- a/libraries/render-utils/src/GeometryCache.cpp +++ b/libraries/render-utils/src/GeometryCache.cpp @@ -999,12 +999,12 @@ void GeometryCache::renderBevelCornersRect(int x, int y, int width, int height, void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxCorner, const glm::vec4& color, int id) { bool registered = (id != UNKNOWN_ID); - Vec2Pair key(minCorner, maxCorner); + Vec4Pair key(glm::vec4(minCorner.x, minCorner.y, maxCorner.x, maxCorner.y), color); BatchItemDetails& details = registered ? _registeredQuad2D[id] : _quad2D[key]; // if this is a registered quad, and we have buffers, then check to see if the geometry changed and rebuild if needed if (registered && details.isCreated) { - Vec2Pair& lastKey = _lastRegisteredQuad2D[id]; + Vec4Pair & lastKey = _lastRegisteredQuad2D[id]; if (lastKey != key) { details.clear(); _lastRegisteredQuad2D[id] = key; @@ -1082,12 +1082,14 @@ void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxC const glm::vec4& color, int id) { bool registered = (id != UNKNOWN_ID); - Vec2PairPair key(Vec2Pair(minCorner, maxCorner), Vec2Pair(texCoordMinCorner, texCoordMaxCorner)); + Vec4PairVec4 key(Vec4Pair(glm::vec4(minCorner.x, minCorner.y, maxCorner.x, maxCorner.y), + glm::vec4(texCoordMinCorner.x, texCoordMinCorner.y, texCoordMaxCorner.x, texCoordMaxCorner.y)), + color); BatchItemDetails& details = registered ? _registeredQuad2DTextures[id] : _quad2DTextures[key]; // if this is a registered quad, and we have buffers, then check to see if the geometry changed and rebuild if needed if (registered && details.isCreated) { - Vec2PairPair& lastKey = _lastRegisteredQuad2DTexture[id]; + Vec4PairVec4& lastKey = _lastRegisteredQuad2DTexture[id]; if (lastKey != key) { details.clear(); _lastRegisteredQuad2DTexture[id] = key; @@ -1172,12 +1174,12 @@ void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxC void GeometryCache::renderQuad(const glm::vec3& minCorner, const glm::vec3& maxCorner, const glm::vec4& color, int id) { bool registered = (id != UNKNOWN_ID); - Vec3Pair key(minCorner, maxCorner); + Vec3PairVec4 key(Vec3Pair(minCorner, maxCorner), color); BatchItemDetails& details = registered ? _registeredQuad3D[id] : _quad3D[key]; // if this is a registered quad, and we have buffers, then check to see if the geometry changed and rebuild if needed if (registered && details.isCreated) { - Vec3Pair& lastKey = _lastRegisteredQuad3D[id]; + Vec3PairVec4& lastKey = _lastRegisteredQuad3D[id]; if (lastKey != key) { details.clear(); _lastRegisteredQuad3D[id] = key; diff --git a/libraries/render-utils/src/GeometryCache.h b/libraries/render-utils/src/GeometryCache.h index 300e68aadd..558887426c 100644 --- a/libraries/render-utils/src/GeometryCache.h +++ b/libraries/render-utils/src/GeometryCache.h @@ -41,7 +41,9 @@ typedef QPair Vec2PairPair; typedef QPair Vec3Pair; typedef QPair Vec4Pair; typedef QPair Vec3PairVec2Pair; +typedef QPair Vec3PairVec4; typedef QPair Vec3PairVec4Pair; +typedef QPair Vec4PairVec4; typedef QPair Vec4PairVec4Pair; inline uint qHash(const glm::vec2& v, uint seed) { @@ -87,6 +89,14 @@ inline uint qHash(const Vec3PairVec2Pair& v, uint seed) { 5077 * v.second.second.x + 5081 * v.second.second.y, seed); } +inline uint qHash(const Vec3PairVec4& v, uint seed) { + // multiply by prime numbers greater than the possible size + return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z + + 5021 * v.first.second.x + 5023 * v.first.second.y + 5039 * v.first.second.z + + 5051 * v.second.x + 5059 * v.second.y + 5077 * v.second.z + 5081 * v.second.w, seed); +} + + inline uint qHash(const Vec3PairVec4Pair& v, uint seed) { // multiply by prime numbers greater than the possible size return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z @@ -96,6 +106,14 @@ inline uint qHash(const Vec3PairVec4Pair& v, uint seed) { seed); } +inline uint qHash(const Vec4PairVec4& v, uint seed) { + // multiply by prime numbers greater than the possible size + return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z + 5021 * v.first.first.w + + 5023 * v.first.second.x + 5039 * v.first.second.y + 5051 * v.first.second.z + 5059 * v.first.second.w + + 5077 * v.second.x + 5081 * v.second.y + 5087 * v.second.z + 5099 * v.second.w, + seed); +} + inline uint qHash(const Vec4PairVec4Pair& v, uint seed) { // multiply by prime numbers greater than the possible size return qHash(v.first.first.x + 5009 * v.first.first.y + 5011 * v.first.first.z + 5021 * v.first.first.w @@ -236,16 +254,16 @@ private: QHash _quad3DTextures; QHash _registeredQuad3DTextures; - QHash _lastRegisteredQuad2DTexture; - QHash _quad2DTextures; + QHash _lastRegisteredQuad2DTexture; + QHash _quad2DTextures; QHash _registeredQuad2DTextures; - QHash _lastRegisteredQuad3D; - QHash _quad3D; + QHash _lastRegisteredQuad3D; + QHash _quad3D; QHash _registeredQuad3D; - QHash _lastRegisteredQuad2D; - QHash _quad2D; + QHash _lastRegisteredQuad2D; + QHash _quad2D; QHash _registeredQuad2D; QHash _lastRegisteredBevelRects; From b9fd116dbf20ed442ef971140f4d8d01858f1d87 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Tue, 10 Feb 2015 18:38:48 -0800 Subject: [PATCH 4/5] Introduce a cache bit in networkGemometry to capture the status of texture LOaded and avoid requiring everything once everything is loaded and get rid of the Transform stack calls on gl from gpu --- libraries/gpu/src/gpu/Batch.h | 22 +--- libraries/gpu/src/gpu/GLBackend.cpp | 131 ------------------- libraries/gpu/src/gpu/GLBackend.h | 12 +- libraries/render-utils/src/GeometryCache.cpp | 18 ++- libraries/render-utils/src/GeometryCache.h | 2 + libraries/render-utils/src/Model.cpp | 31 ++++- 6 files changed, 40 insertions(+), 176 deletions(-) diff --git a/libraries/gpu/src/gpu/Batch.h b/libraries/gpu/src/gpu/Batch.h index 64b94344c2..0657eacd6e 100644 --- a/libraries/gpu/src/gpu/Batch.h +++ b/libraries/gpu/src/gpu/Batch.h @@ -129,17 +129,7 @@ public: void _glUniform1f(GLint location, GLfloat v0); void _glUniform2f(GLint location, GLfloat v0, GLfloat v1); void _glUniform4fv(GLint location, GLsizei count, const GLfloat* value); - void _glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); - - void _glMatrixMode(GLenum mode); - void _glPushMatrix(); - void _glPopMatrix(); - void _glMultMatrixf(const GLfloat *m); - void _glLoadMatrixf(const GLfloat *m); - void _glLoadIdentity(void); - void _glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); - void _glScalef(GLfloat x, GLfloat y, GLfloat z); - void _glTranslatef(GLfloat x, GLfloat y, GLfloat z); + void _glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void _glDrawArrays(GLenum mode, GLint first, GLsizei count); void _glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); @@ -201,16 +191,6 @@ public: COMMAND_glUniform4fv, COMMAND_glUniformMatrix4fv, - COMMAND_glMatrixMode, - COMMAND_glPushMatrix, - COMMAND_glPopMatrix, - COMMAND_glMultMatrixf, - COMMAND_glLoadMatrixf, - COMMAND_glLoadIdentity, - COMMAND_glRotatef, - COMMAND_glScalef, - COMMAND_glTranslatef, - COMMAND_glDrawArrays, COMMAND_glDrawRangeElements, diff --git a/libraries/gpu/src/gpu/GLBackend.cpp b/libraries/gpu/src/gpu/GLBackend.cpp index 519b20eca7..34ca47f300 100644 --- a/libraries/gpu/src/gpu/GLBackend.cpp +++ b/libraries/gpu/src/gpu/GLBackend.cpp @@ -54,16 +54,6 @@ GLBackend::CommandCall GLBackend::_commandCalls[Batch::NUM_COMMANDS] = (&::gpu::GLBackend::do_glUniform4fv), (&::gpu::GLBackend::do_glUniformMatrix4fv), - (&::gpu::GLBackend::do_glMatrixMode), - (&::gpu::GLBackend::do_glPushMatrix), - (&::gpu::GLBackend::do_glPopMatrix), - (&::gpu::GLBackend::do_glMultMatrixf), - (&::gpu::GLBackend::do_glLoadMatrixf), - (&::gpu::GLBackend::do_glLoadIdentity), - (&::gpu::GLBackend::do_glRotatef), - (&::gpu::GLBackend::do_glScalef), - (&::gpu::GLBackend::do_glTranslatef), - (&::gpu::GLBackend::do_glDrawArrays), (&::gpu::GLBackend::do_glDrawRangeElements), @@ -747,127 +737,6 @@ void GLBackend::do_glUniformMatrix4fv(Batch& batch, uint32 paramOffset) { CHECK_GL_ERROR(); } -void Batch::_glMatrixMode(GLenum mode) { - ADD_COMMAND_GL(glMatrixMode); - - _params.push_back(mode); - - DO_IT_NOW(_glMatrixMode, 1); -} -void GLBackend::do_glMatrixMode(Batch& batch, uint32 paramOffset) { - glMatrixMode(batch._params[paramOffset]._uint); - CHECK_GL_ERROR(); -} - -void Batch::_glPushMatrix() { - ADD_COMMAND_GL(glPushMatrix); - - DO_IT_NOW(_glPushMatrix, 0); -} -void GLBackend::do_glPushMatrix(Batch& batch, uint32 paramOffset) { - glPushMatrix(); - CHECK_GL_ERROR(); -} - -void Batch::_glPopMatrix() { - ADD_COMMAND_GL(glPopMatrix); - - DO_IT_NOW(_glPopMatrix, 0); -} -void GLBackend::do_glPopMatrix(Batch& batch, uint32 paramOffset) { - glPopMatrix(); - CHECK_GL_ERROR(); -} - -void Batch::_glMultMatrixf(const GLfloat *m) { - ADD_COMMAND_GL(glMultMatrixf); - - const int MATRIX4_SIZE = 16 * sizeof(float); - _params.push_back(cacheData(MATRIX4_SIZE, m)); - - DO_IT_NOW(_glMultMatrixf, 1); -} -void GLBackend::do_glMultMatrixf(Batch& batch, uint32 paramOffset) { - glMultMatrixf((const GLfloat*)batch.editData(batch._params[paramOffset]._uint)); - CHECK_GL_ERROR(); -} - -void Batch::_glLoadMatrixf(const GLfloat *m) { - ADD_COMMAND_GL(glLoadMatrixf); - - const int MATRIX4_SIZE = 16 * sizeof(float); - _params.push_back(cacheData(MATRIX4_SIZE, m)); - - DO_IT_NOW(_glLoadMatrixf, 1); -} -void GLBackend::do_glLoadMatrixf(Batch& batch, uint32 paramOffset) { - glLoadMatrixf((const GLfloat*)batch.editData(batch._params[paramOffset]._uint)); - CHECK_GL_ERROR(); -} - -void Batch::_glLoadIdentity(void) { - ADD_COMMAND_GL(glLoadIdentity); - - DO_IT_NOW(_glLoadIdentity, 0); -} -void GLBackend::do_glLoadIdentity(Batch& batch, uint32 paramOffset) { - glLoadIdentity(); - CHECK_GL_ERROR(); -} - -void Batch::_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { - ADD_COMMAND_GL(glRotatef); - - _params.push_back(z); - _params.push_back(y); - _params.push_back(x); - _params.push_back(angle); - - DO_IT_NOW(_glRotatef, 4); -} -void GLBackend::do_glRotatef(Batch& batch, uint32 paramOffset) { - glRotatef( - batch._params[paramOffset + 3]._float, - batch._params[paramOffset + 2]._float, - batch._params[paramOffset + 1]._float, - batch._params[paramOffset + 0]._float); - CHECK_GL_ERROR(); -} - -void Batch::_glScalef(GLfloat x, GLfloat y, GLfloat z) { - ADD_COMMAND_GL(glScalef); - - _params.push_back(z); - _params.push_back(y); - _params.push_back(x); - - DO_IT_NOW(_glScalef, 3); -} -void GLBackend::do_glScalef(Batch& batch, uint32 paramOffset) { - glScalef( - batch._params[paramOffset + 2]._float, - batch._params[paramOffset + 1]._float, - batch._params[paramOffset + 0]._float); - CHECK_GL_ERROR(); -} - -void Batch::_glTranslatef(GLfloat x, GLfloat y, GLfloat z) { - ADD_COMMAND_GL(glTranslatef); - - _params.push_back(z); - _params.push_back(y); - _params.push_back(x); - - DO_IT_NOW(_glTranslatef, 3); -} -void GLBackend::do_glTranslatef(Batch& batch, uint32 paramOffset) { - glTranslatef( - batch._params[paramOffset + 2]._float, - batch._params[paramOffset + 1]._float, - batch._params[paramOffset + 0]._float); - CHECK_GL_ERROR(); -} - void Batch::_glDrawArrays(GLenum mode, GLint first, GLsizei count) { ADD_COMMAND_GL(glDrawArrays); diff --git a/libraries/gpu/src/gpu/GLBackend.h b/libraries/gpu/src/gpu/GLBackend.h index 1731701022..e3450ae71a 100644 --- a/libraries/gpu/src/gpu/GLBackend.h +++ b/libraries/gpu/src/gpu/GLBackend.h @@ -175,17 +175,7 @@ protected: void do_glUniform1f(Batch& batch, uint32 paramOffset); void do_glUniform2f(Batch& batch, uint32 paramOffset); void do_glUniform4fv(Batch& batch, uint32 paramOffset); - void do_glUniformMatrix4fv(Batch& batch, uint32 paramOffset); - - void do_glMatrixMode(Batch& batch, uint32 paramOffset); - void do_glPushMatrix(Batch& batch, uint32 paramOffset); - void do_glPopMatrix(Batch& batch, uint32 paramOffset); - void do_glMultMatrixf(Batch& batch, uint32 paramOffset); - void do_glLoadMatrixf(Batch& batch, uint32 paramOffset); - void do_glLoadIdentity(Batch& batch, uint32 paramOffset); - void do_glRotatef(Batch& batch, uint32 paramOffset); - void do_glScalef(Batch& batch, uint32 paramOffset); - void do_glTranslatef(Batch& batch, uint32 paramOffset); + void do_glUniformMatrix4fv(Batch& batch, uint32 paramOffset); void do_glDrawArrays(Batch& batch, uint32 paramOffset); void do_glDrawRangeElements(Batch& batch, uint32 paramOffset); diff --git a/libraries/render-utils/src/GeometryCache.cpp b/libraries/render-utils/src/GeometryCache.cpp index abf57843b7..16bf958920 100644 --- a/libraries/render-utils/src/GeometryCache.cpp +++ b/libraries/render-utils/src/GeometryCache.cpp @@ -1753,15 +1753,18 @@ bool NetworkGeometry::isLoadedWithTextures() const { if (!isLoaded()) { return false; } - foreach (const NetworkMesh& mesh, _meshes) { - foreach (const NetworkMeshPart& part, mesh.parts) { - if ((part.diffuseTexture && !part.diffuseTexture->isLoaded()) || - (part.normalTexture && !part.normalTexture->isLoaded()) || - (part.specularTexture && !part.specularTexture->isLoaded()) || - (part.emissiveTexture && !part.emissiveTexture->isLoaded())) { - return false; + if (!_isLoadedWithTextures) { + foreach (const NetworkMesh& mesh, _meshes) { + foreach (const NetworkMeshPart& part, mesh.parts) { + if ((part.diffuseTexture && !part.diffuseTexture->isLoaded()) || + (part.normalTexture && !part.normalTexture->isLoaded()) || + (part.specularTexture && !part.specularTexture->isLoaded()) || + (part.emissiveTexture && !part.emissiveTexture->isLoaded())) { + return false; + } } } + _isLoadedWithTextures = true; } return true; } @@ -1938,6 +1941,7 @@ void NetworkGeometry::setTextureWithNameToURL(const QString& name, const QUrl& u // we don't have meshes downloaded yet, so hold this texture as pending _pendingTextureChanges.insert(name, url); } + _isLoadedWithTextures = false; } QStringList NetworkGeometry::getTextureNames() const { diff --git a/libraries/render-utils/src/GeometryCache.h b/libraries/render-utils/src/GeometryCache.h index 300e68aadd..04cea4f9f8 100644 --- a/libraries/render-utils/src/GeometryCache.h +++ b/libraries/render-utils/src/GeometryCache.h @@ -339,6 +339,8 @@ private: QHash, QVector > _jointMappings; QHash _pendingTextureChanges; + + mutable bool _isLoadedWithTextures = false; }; /// The state associated with a single mesh part. diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 79f938e7f6..1bf379208a 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -686,7 +686,7 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) { // Let's introduce a gpu::Batch to capture all the calls to the graphics api _renderBatch.clear(); gpu::Batch& batch = _renderBatch; - GLBATCH(glPushMatrix)(); + //GLBATCH(glPushMatrix)(); // Capture the view matrix once for the rendering of this model if (_transforms.empty()) { @@ -835,12 +835,23 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) { GLBATCH(glBindBuffer)(GL_ELEMENT_ARRAY_BUFFER, 0); GLBATCH(glBindTexture)(GL_TEXTURE_2D, 0); - GLBATCH(glPopMatrix)(); + //GLBATCH(glPopMatrix)(); // Render! { PROFILE_RANGE("render Batch"); + + #if defined(ANDROID) + #else + glPushMatrix(); + #endif + ::gpu::GLBackend::renderBatch(batch); + + #if defined(ANDROID) + #else + glPopMatrix(); + #endif } // restore all the default material settings @@ -1638,7 +1649,7 @@ void Model::startScene(RenderArgs::RenderSide renderSide) { } void Model::setupBatchTransform(gpu::Batch& batch) { - GLBATCH(glPushMatrix)(); + //GLBATCH(glPushMatrix)(); // Capture the view matrix once for the rendering of this model if (_transforms.empty()) { @@ -1811,7 +1822,17 @@ void Model::endScene(RenderMode mode, RenderArgs* args) { // Render! { PROFILE_RANGE("render Batch"); + #if defined(ANDROID) + #else + glPushMatrix(); + #endif + ::gpu::GLBackend::renderBatch(_sceneRenderBatch); + + #if defined(ANDROID) + #else + glPopMatrix(); + #endif } // restore all the default material settings @@ -2271,7 +2292,7 @@ int Model::renderMeshesForModelsInScene(gpu::Batch& batch, RenderMode mode, bool } model->setupBatchTransform(batch); meshPartsRendered += model->renderMeshesFromList(list, batch, mode, translucent, alphaThreshold, args, locations, skinLocations); - GLBATCH(glPopMatrix)(); + //GLBATCH(glPopMatrix)(); } } } @@ -2437,11 +2458,9 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod } static bool showDiffuse = true; if (showDiffuse && diffuseMap) { - // GLBATCH(glBindTexture)(GL_TEXTURE_2D, diffuseMap->getID()); batch.setUniformTexture(0, diffuseMap->getGPUTexture()); } else { - // GLBATCH(glBindTexture)(GL_TEXTURE_2D, textureCache->getWhiteTextureID()); batch.setUniformTexture(0, textureCache->getWhiteTexture()); } From a6f006a36d998cfd6450a66ec445e229c029483c Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Tue, 10 Feb 2015 18:41:36 -0800 Subject: [PATCH 5/5] more cleaning --- libraries/render-utils/src/Model.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 1bf379208a..f166aecae9 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -686,7 +686,6 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) { // Let's introduce a gpu::Batch to capture all the calls to the graphics api _renderBatch.clear(); gpu::Batch& batch = _renderBatch; - //GLBATCH(glPushMatrix)(); // Capture the view matrix once for the rendering of this model if (_transforms.empty()) { @@ -835,8 +834,6 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) { GLBATCH(glBindBuffer)(GL_ELEMENT_ARRAY_BUFFER, 0); GLBATCH(glBindTexture)(GL_TEXTURE_2D, 0); - //GLBATCH(glPopMatrix)(); - // Render! { PROFILE_RANGE("render Batch"); @@ -1649,7 +1646,6 @@ void Model::startScene(RenderArgs::RenderSide renderSide) { } void Model::setupBatchTransform(gpu::Batch& batch) { - //GLBATCH(glPushMatrix)(); // Capture the view matrix once for the rendering of this model if (_transforms.empty()) { @@ -2292,7 +2288,6 @@ int Model::renderMeshesForModelsInScene(gpu::Batch& batch, RenderMode mode, bool } model->setupBatchTransform(batch); meshPartsRendered += model->renderMeshesFromList(list, batch, mode, translucent, alphaThreshold, args, locations, skinLocations); - //GLBATCH(glPopMatrix)(); } } } @@ -2392,8 +2387,6 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod } } - // GLBATCH(glPushMatrix)(); - const MeshState& state = _meshStates.at(i); if (state.clusterMatrices.size() > 1) { GLBATCH(glUniformMatrix4fv)(skinLocations->clusterMatrices, state.clusterMatrices.size(), false,