From 61b77d8948303acb7d8dd038d25004c7774e0052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Tue, 2 May 2017 01:45:11 +0200 Subject: OCIO: Fix crash cause by bad IMM usable. --- intern/opencolorio/ocio_impl_glsl.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'intern/opencolorio') 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); -- cgit v1.2.3