diff options
author | Mike Erwin <significant.bit@gmail.com> | 2017-05-19 01:30:09 +0300 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2017-05-19 01:30:24 +0300 |
commit | e03e977385c9285ec13695f93e43bb805c4dd0af (patch) | |
tree | 7b10708c15620b74bc7a838da28f30285266685a /intern/opensubdiv | |
parent | 77f8d631b1f6479b6e5b3b99ecb3611fca519444 (diff) |
OpenGL: call glProgramUniform only if version >= 4.1
Otherwise crash! Called from OpenSubdiv setup code. Might start using this in more places...
Diffstat (limited to 'intern/opensubdiv')
-rw-r--r-- | intern/opensubdiv/opensubdiv_gpu_capi.cc | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/intern/opensubdiv/opensubdiv_gpu_capi.cc b/intern/opensubdiv/opensubdiv_gpu_capi.cc index 681fc319dce..32474d7cb60 100644 --- a/intern/opensubdiv/opensubdiv_gpu_capi.cc +++ b/intern/opensubdiv/opensubdiv_gpu_capi.cc @@ -296,18 +296,26 @@ GLuint linkProgram(const char *version, const char *define) glGetUniformBlockIndex(program, "Lighting"), 0); - /* TODO: use glUseProgram, glUniform */ - glProgramUniform1i(program, - glGetUniformLocation(program, "texture_buffer"), - 0); /* GL_TEXTURE0 */ - - glProgramUniform1i(program, - glGetUniformLocation(program, "FVarDataOffsetBuffer"), - 30); /* GL_TEXTURE30 */ - - glProgramUniform1i(program, - glGetUniformLocation(program, "FVarDataBuffer"), - 31); /* GL_TEXTURE31 */ + if (GLEW_VERSION_4_1) { + glProgramUniform1i(program, + glGetUniformLocation(program, "texture_buffer"), + 0); /* GL_TEXTURE0 */ + + glProgramUniform1i(program, + glGetUniformLocation(program, "FVarDataOffsetBuffer"), + 30); /* GL_TEXTURE30 */ + + glProgramUniform1i(program, + glGetUniformLocation(program, "FVarDataBuffer"), + 31); /* GL_TEXTURE31 */ + } + else { + glUseProgram(program); + glUniform1i(glGetUniformLocation(program, "texture_buffer"), 0); /* GL_TEXTURE0 */ + glUniform1i(glGetUniformLocation(program, "FVarDataOffsetBuffer"), 30); /* GL_TEXTURE30 */ + glUniform1i(glGetUniformLocation(program, "FVarDataBuffer"), 31); /* GL_TEXTURE31 */ + glUseProgram(0); + } return program; } |