diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-05-02 02:45:11 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-05-02 16:13:12 +0300 |
commit | 61b77d8948303acb7d8dd038d25004c7774e0052 (patch) | |
tree | 86d85df5a0b9d67b2ebd10947e0a43f371490de4 | |
parent | d3964db5bd6d0496c7fc11657681ecde2d96272d (diff) |
OCIO: Fix crash cause by bad IMM usable.
-rw-r--r-- | intern/opencolorio/ocio_impl_glsl.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/intern/opencolorio/ocio_impl_glsl.cc b/intern/opencolorio/ocio_impl_glsl.cc index 5d1d170c2cb..8323cffd09b 100644 --- a/intern/opencolorio/ocio_impl_glsl.cc +++ b/intern/opencolorio/ocio_impl_glsl.cc @@ -396,6 +396,10 @@ bool OCIOImpl::setupGLSLDraw(OCIO_GLSLDrawState **state_r, OCIO_ConstProcessorRc state->program = linkShaders(state->ocio_shader, state->vert_shader); } + if (state->program) { + state->shader_interface = ShaderInterface_create(state->program); + } + state->curve_mapping_used = use_curve_mapping; state->dither_used = use_dither; state->predivide_used = use_predivide; @@ -412,8 +416,10 @@ bool OCIOImpl::setupGLSLDraw(OCIO_GLSLDrawState **state_r, OCIO_ConstProcessorRc glActiveTexture(GL_TEXTURE0); - state->shader_interface = ShaderInterface_create(state->program); - + /* IMM needs vertex format even if we don't draw with it */ + VertexFormat *format = immVertexFormat(); + VertexFormat_add_attrib(format, "pos", COMP_F32, 2, KEEP_FLOAT); + VertexFormat_add_attrib(format, "texCoord", COMP_F32, 2, KEEP_FLOAT); immBindProgram(state->program, state->shader_interface); immUniform1i("image_texture", 0); |