File b49b026b8eb6b289c59ff9ecb741f52531c22170.patch of Package blender
From b49b026b8eb6b289c59ff9ecb741f52531c22170 Mon Sep 17 00:00:00 2001
From: Brecht Van Lommel <brecht@blender.org>
Date: Thu, 2 Oct 2025 20:01:32 +0200
Subject: [PATCH] Color Management: Support build against OpenColorIO 2.5.0
But do not yet take advantage of any of its new features.
Ref #147227
---
.../ocio_color_space_conversion_shader.cc | 63 ++++++++++++++-----
1 file changed, 46 insertions(+), 17 deletions(-)
diff --git a/source/blender/compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc b/source/blender/compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc
index e53db523f1e..6874a7c9acf 100644
--- a/source/blender/compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc
+++ b/source/blender/compositor/cached_resources/intern/ocio_color_space_conversion_shader.cc
@@ -153,7 +153,12 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
bool addUniform(const char *name,
const SizeGetter &get_size,
- const VectorFloatGetter &get_vector_float) override
+ const VectorFloatGetter &get_vector_float
+# if OCIO_VERSION_HEX >= 0x02050000
+ ,
+ const unsigned /*maxSize*/
+# endif
+ ) override
{
/* Check if a resource exists with the same name and assert if it is the case, returning false
* indicates failure to add the uniform for the shader creator. */
@@ -175,7 +180,12 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
bool addUniform(const char *name,
const SizeGetter &get_size,
- const VectorIntGetter &get_vector_int) override
+ const VectorIntGetter &get_vector_int
+# if OCIO_VERSION_HEX >= 0x02050000
+ ,
+ const unsigned /*maxSize*/
+# endif
+ ) override
{
/* Check if a resource exists with the same name and assert if it is the case, returning false
* indicates failure to add the uniform for the shader creator. */
@@ -195,16 +205,21 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
return true;
}
- void addTexture(const char *texture_name,
- const char *sampler_name,
- uint width,
- uint height,
- TextureType channel,
-# if OCIO_VERSION_HEX >= 0x02030000
- OCIO::GpuShaderDesc::TextureDimensions dimensions,
+# if OCIO_VERSION_HEX >= 0x02050000
+ unsigned
+# else
+ void
# endif
- OCIO::Interpolation interpolation,
- const float *values) override
+ addTexture(const char *texture_name,
+ const char *sampler_name,
+ uint width,
+ uint height,
+ TextureType channel,
+# if OCIO_VERSION_HEX >= 0x02030000
+ OCIO::GpuShaderDesc::TextureDimensions dimensions,
+# endif
+ OCIO::Interpolation interpolation,
+ const float *values) override
{
/* Check if a resource exists with the same name and assert if it is the case. */
if (!resource_names_.add(std::make_unique<std::string>(sampler_name))) {
@@ -240,13 +255,21 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
GPU_texture_filter_mode(texture, interpolation != OCIO::INTERP_NEAREST);
textures_.add(sampler_name, texture);
+# if OCIO_VERSION_HEX >= 0x02050000
+ return textures_.size() - 1;
+# endif
}
- void add3DTexture(const char *texture_name,
- const char *sampler_name,
- uint size,
- OCIO::Interpolation interpolation,
- const float *values) override
+# if OCIO_VERSION_HEX >= 0x02050000
+ unsigned
+# else
+ void
+# endif
+ add3DTexture(const char *texture_name,
+ const char *sampler_name,
+ uint size,
+ OCIO::Interpolation interpolation,
+ const float *values) override
{
/* Check if a resource exists with the same name and assert if it is the case. */
if (!resource_names_.add(std::make_unique<std::string>(sampler_name))) {
@@ -270,12 +293,18 @@ class GPUShaderCreator : public OCIO::GpuShaderCreator {
GPU_texture_filter_mode(texture, interpolation != OCIO::INTERP_NEAREST);
textures_.add(sampler_name, texture);
+# if OCIO_VERSION_HEX >= 0x02050000
+ return textures_.size() - 1;
+# endif
}
/* This gets called before the finalize() method to construct the shader code. We just
* concatenate the code except for the declarations section. That's because the ShaderCreateInfo
* will add the declaration itself. */
- void createShaderText(const char * /*declarations*/,
+ void createShaderText(const char * /*parameter_declarations*/,
+# if OCIO_VERSION_HEX >= 0x02050000
+ const char * /*texture_declarations*/,
+# endif
const char *helper_methods,
const char *function_header,
const char *function_body,