Files
MINGW-packages/mingw-w64-blender/0101-opencolorio--new-compatibility.patch
2018-07-18 08:55:51 +03:00

52 lines
2.0 KiB
Diff

--- blender-2.79b-orig/intern/opencolorio/ocio_impl_glsl.cc 2018-03-23 18:10:23.000000000 +0300
+++ blender-2.79b/intern/opencolorio/ocio_impl_glsl.cc 2018-07-10 09:02:08.102293700 +0300
@@ -294,10 +294,10 @@
}
/* Step 1: Create a GPU Shader Description */
- GpuShaderDesc shaderDesc;
- shaderDesc.setLanguage(GPU_LANGUAGE_GLSL_1_3);
- shaderDesc.setFunctionName("OCIODisplay");
- shaderDesc.setLut3DEdgeLen(LUT3D_EDGE_SIZE);
+ GpuShaderDescRcPtr shaderDesc = GpuShaderDesc::CreateLegacyShaderDesc(LUT3D_EDGE_SIZE);
+ shaderDesc->setLanguage(GPU_LANGUAGE_GLSL_1_3);
+ shaderDesc->setFunctionName("OCIODisplay");
+ shaderDesc->setResourcePrefix("ocio_");
if (use_curve_mapping) {
if (state->curve_mapping_cache_id != curve_mapping_settings->cache_id) {
@@ -308,21 +308,11 @@
}
}
- /* Step 2: Compute the 3D LUT */
- std::string lut3dCacheID = ocio_processor->getGpuLut3DCacheID(shaderDesc);
- if (lut3dCacheID != state->lut3dcacheid) {
- state->lut3dcacheid = lut3dCacheID;
- ocio_processor->getGpuLut3D(state->lut3d, shaderDesc);
-
- glActiveTexture(GL_TEXTURE1);
- glBindTexture(GL_TEXTURE_3D, state->lut3d_texture);
- glTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, 0,
- LUT3D_EDGE_SIZE, LUT3D_EDGE_SIZE, LUT3D_EDGE_SIZE,
- GL_RGB, GL_FLOAT, state->lut3d);
- }
+ /* Step 2: Collect the shader program information for a specific processor */
+ ocio_processor->extractGpuShaderInfo(shaderDesc);
/* Step 3: Compute the Shader */
- std::string shaderCacheID = ocio_processor->getGpuShaderTextCacheID(shaderDesc);
+ std::string shaderCacheID = shaderDesc->getCacheID();
if (state->program == 0 ||
shaderCacheID != state->shadercacheid ||
use_predivide != state->predivide_used ||
@@ -361,7 +351,7 @@
os << "#define USE_CURVE_MAPPING\n";
}
- os << ocio_processor->getGpuShaderText(shaderDesc) << "\n";
+ os << shaderDesc->getShaderText() << "\n";
os << datatoc_gpu_shader_display_transform_glsl;
state->ocio_shader = compileShaderText(GL_FRAGMENT_SHADER, os.str().c_str());