From bff2a2a8e52f0a84cf22c87e351c4379f0a49d0b Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 14 Jan 2016 12:32:15 -0800 Subject: [PATCH] Factor draw call updates --- libraries/gpu/src/gpu/GLBackend.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/libraries/gpu/src/gpu/GLBackend.cpp b/libraries/gpu/src/gpu/GLBackend.cpp index 7f2f98e656..bd8439c8be 100644 --- a/libraries/gpu/src/gpu/GLBackend.cpp +++ b/libraries/gpu/src/gpu/GLBackend.cpp @@ -215,6 +215,15 @@ void GLBackend::renderPassDraw(Batch& batch) { case Batch::COMMAND_setProjectionTransform: break; + case Batch::COMMAND_draw: + case Batch::COMMAND_drawIndexed: + case Batch::COMMAND_drawInstanced: + case Batch::COMMAND_drawIndexedInstanced: + // updates for draw calls + updateInput(); + updateTransform(); + updatePipeline(); + // Fallthrough to next case default: { CommandCall call = _commandCalls[(*command)]; (this->*(call))(batch, *offset); @@ -326,10 +335,6 @@ void GLBackend::syncCache() { } void GLBackend::do_draw(Batch& batch, size_t paramOffset) { - updateInput(); - updateTransform(); - updatePipeline(); - Primitive primitiveType = (Primitive)batch._params[paramOffset + 2]._uint; GLenum mode = _primitiveToGLmode[primitiveType]; uint32 numVertices = batch._params[paramOffset + 1]._uint; @@ -339,10 +344,6 @@ void GLBackend::do_draw(Batch& batch, size_t paramOffset) { } void GLBackend::do_drawIndexed(Batch& batch, size_t paramOffset) { - updateInput(); - updateTransform(); - updatePipeline(); - Primitive primitiveType = (Primitive)batch._params[paramOffset + 2]._uint; GLenum mode = _primitiveToGLmode[primitiveType]; uint32 numIndices = batch._params[paramOffset + 1]._uint; @@ -358,10 +359,6 @@ void GLBackend::do_drawIndexed(Batch& batch, size_t paramOffset) { } void GLBackend::do_drawInstanced(Batch& batch, size_t paramOffset) { - updateInput(); - updateTransform(); - updatePipeline(); - GLint numInstances = batch._params[paramOffset + 4]._uint; Primitive primitiveType = (Primitive)batch._params[paramOffset + 3]._uint; GLenum mode = _primitiveToGLmode[primitiveType]; @@ -373,10 +370,6 @@ void GLBackend::do_drawInstanced(Batch& batch, size_t paramOffset) { } void GLBackend::do_drawIndexedInstanced(Batch& batch, size_t paramOffset) { - updateInput(); - updateTransform(); - updatePipeline(); - GLint numInstances = batch._params[paramOffset + 4]._uint; GLenum mode = _primitiveToGLmode[(Primitive)batch._params[paramOffset + 3]._uint]; uint32 numIndices = batch._params[paramOffset + 2]._uint;