Changeset View
Changeset View
Standalone View
Standalone View
intern/opencolorio/ocio_impl_glsl.cc
| Show First 20 Lines • Show All 257 Lines • ▼ Show 20 Lines | static void updateGLSLShader(OCIO_GLSLShader *shader, | ||||
| if (shader->program) { | if (shader->program) { | ||||
| shader->dither_loc = glGetUniformLocation(shader->program, "dither"); | shader->dither_loc = glGetUniformLocation(shader->program, "dither"); | ||||
| shader->overlay_tex_loc = glGetUniformLocation(shader->program, "overlay_texture"); | shader->overlay_tex_loc = glGetUniformLocation(shader->program, "overlay_texture"); | ||||
| shader->overlay_loc = glGetUniformLocation(shader->program, "overlay"); | shader->overlay_loc = glGetUniformLocation(shader->program, "overlay"); | ||||
| shader->predivide_loc = glGetUniformLocation(shader->program, "predivide"); | shader->predivide_loc = glGetUniformLocation(shader->program, "predivide"); | ||||
| shader->curve_mapping_loc = glGetUniformLocation(shader->program, "curve_mapping"); | shader->curve_mapping_loc = glGetUniformLocation(shader->program, "curve_mapping"); | ||||
| glUseProgram(shader->program); | glUseProgram(shader->program); | ||||
| /* Set texture bind point uniform once. This is saved by the shader. */ | |||||
| glUniform1i(glGetUniformLocation(shader->program, "image_texture"), 0); | |||||
| glUniform1i(glGetUniformLocation(shader->program, "lut3d_texture"), 2); | |||||
| glUniform1i(glGetUniformLocation(shader->program, "lut3d_display_texture"), 3); | |||||
| glUniform1i(glGetUniformLocation(shader->program, "curve_mapping_texture"), 4); | |||||
| /* Set UBO binding location. */ | /* Set UBO binding location. */ | ||||
| GLuint index = glGetUniformBlockIndex(shader->program, "OCIO_GLSLCurveMappingParameters"); | GLuint index = glGetUniformBlockIndex(shader->program, "OCIO_GLSLCurveMappingParameters"); | ||||
| glUniformBlockBinding(shader->program, index, UBO_BIND_LOC); | glUniformBlockBinding(shader->program, index, UBO_BIND_LOC); | ||||
| /* TODO(fclem) Remove this. Make caller always assume viewport space and | /* TODO(fclem) Remove this. Make caller always assume viewport space and | ||||
| * specify texco via vertex attribs. */ | * specify texco via vertex attribs. */ | ||||
| shader->interface = GPU_shaderinterface_create(shader->program); | shader->interface = GPU_shaderinterface_create(shader->program); | ||||
| /* Set texture bind point uniform once. This is saved by the shader. */ | |||||
| glUniform1i(glGetUniformLocation(shader->program, "image_texture"), 0); | |||||
| glUniform1i(glGetUniformLocation(shader->program, "lut3d_texture"), 2); | |||||
| glUniform1i(glGetUniformLocation(shader->program, "lut3d_display_texture"), 3); | |||||
| glUniform1i(glGetUniformLocation(shader->program, "curve_mapping_texture"), 4); | |||||
| } | } | ||||
| shader->cacheId = cache_id; | shader->cacheId = cache_id; | ||||
| shader->valid = (shader->program != 0); | shader->valid = (shader->program != 0); | ||||
| } | } | ||||
| static void ensureGLSLShader(OCIO_GLSLShader **shader_ptr, | static void ensureGLSLShader(OCIO_GLSLShader **shader_ptr, | ||||
| ConstProcessorRcPtr *processor_scene_to_ui, | ConstProcessorRcPtr *processor_scene_to_ui, | ||||
| ▲ Show 20 Lines • Show All 431 Lines • Show Last 20 Lines | |||||