diff --git a/libraries/gpu/src/gpu/Batch.h b/libraries/gpu/src/gpu/Batch.h index bbd2121c54..9d2838127e 100644 --- a/libraries/gpu/src/gpu/Batch.h +++ b/libraries/gpu/src/gpu/Batch.h @@ -148,6 +148,7 @@ public: void _glDrawBuffers(GLsizei n, const GLenum* bufs); void _glUseProgram(GLuint program); + void _glUniform1i(GLint location, GLint v0); void _glUniform1f(GLint location, GLfloat v0); void _glUniform2f(GLint location, GLfloat v0, GLfloat v1); void _glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); @@ -210,6 +211,7 @@ public: COMMAND_glDrawBuffers, COMMAND_glUseProgram, + COMMAND_glUniform1i, COMMAND_glUniform1f, COMMAND_glUniform2f, COMMAND_glUniform3f, diff --git a/libraries/gpu/src/gpu/GLBackend.cpp b/libraries/gpu/src/gpu/GLBackend.cpp index 20a6b60901..154d6b9e3f 100644 --- a/libraries/gpu/src/gpu/GLBackend.cpp +++ b/libraries/gpu/src/gpu/GLBackend.cpp @@ -59,6 +59,7 @@ GLBackend::CommandCall GLBackend::_commandCalls[Batch::NUM_COMMANDS] = (&::gpu::GLBackend::do_glDrawBuffers), (&::gpu::GLBackend::do_glUseProgram), + (&::gpu::GLBackend::do_glUniform1i), (&::gpu::GLBackend::do_glUniform1f), (&::gpu::GLBackend::do_glUniform2f), (&::gpu::GLBackend::do_glUniform3f), @@ -433,6 +434,28 @@ void GLBackend::do_glUseProgram(Batch& batch, uint32 paramOffset) { (void) CHECK_GL_ERROR(); } +void Batch::_glUniform1i(GLint location, GLint v0) { + if (location < 0) { + return; + } + ADD_COMMAND_GL(glUniform1i); + _params.push_back(v0); + _params.push_back(location); + + DO_IT_NOW(_glUniform1i, 1); +} +void GLBackend::do_glUniform1i(Batch& batch, uint32 paramOffset) { + if (_pipeline._program == 0) { + // We should call updatePipeline() to bind the program but we are not doing that + // because these uniform setters are deprecated and we don;t want to create side effect + return; + } + glUniform1f( + batch._params[paramOffset + 1]._int, + batch._params[paramOffset + 0]._int); + (void) CHECK_GL_ERROR(); +} + void Batch::_glUniform1f(GLint location, GLfloat v0) { if (location < 0) { return; diff --git a/libraries/gpu/src/gpu/GLBackend.h b/libraries/gpu/src/gpu/GLBackend.h index c87394869c..f20b6735b0 100644 --- a/libraries/gpu/src/gpu/GLBackend.h +++ b/libraries/gpu/src/gpu/GLBackend.h @@ -377,6 +377,7 @@ protected: void do_glDrawBuffers(Batch& batch, uint32 paramOffset); void do_glUseProgram(Batch& batch, uint32 paramOffset); + void do_glUniform1i(Batch& batch, uint32 paramOffset); void do_glUniform1f(Batch& batch, uint32 paramOffset); void do_glUniform2f(Batch& batch, uint32 paramOffset); void do_glUniform3f(Batch& batch, uint32 paramOffset);