Merge branch 'blender-v2.93-release'
This commit is contained in:
commit
503dc97708
|
@ -57,6 +57,8 @@ static CLG_LogRef LOG = {"gpu.shader"};
|
|||
using namespace blender;
|
||||
using namespace blender::gpu;
|
||||
|
||||
static bool gpu_shader_srgb_uniform_dirty_get();
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Debug functions
|
||||
* \{ */
|
||||
|
@ -501,9 +503,13 @@ void GPU_shader_bind(GPUShader *gpu_shader)
|
|||
GPU_matrix_bind(gpu_shader);
|
||||
GPU_shader_set_srgb_uniform(gpu_shader);
|
||||
}
|
||||
|
||||
if (GPU_matrix_dirty_get()) {
|
||||
GPU_matrix_bind(gpu_shader);
|
||||
else {
|
||||
if (gpu_shader_srgb_uniform_dirty_get()) {
|
||||
GPU_shader_set_srgb_uniform(gpu_shader);
|
||||
}
|
||||
if (GPU_matrix_dirty_get()) {
|
||||
GPU_matrix_bind(gpu_shader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -715,6 +721,12 @@ void GPU_shader_uniform_4fv_array(GPUShader *sh, const char *name, int len, cons
|
|||
* \{ */
|
||||
|
||||
static int g_shader_builtin_srgb_transform = 0;
|
||||
static bool g_shader_builtin_srgb_is_dirty = false;
|
||||
|
||||
static bool gpu_shader_srgb_uniform_dirty_get(void)
|
||||
{
|
||||
return g_shader_builtin_srgb_is_dirty;
|
||||
}
|
||||
|
||||
void GPU_shader_set_srgb_uniform(GPUShader *shader)
|
||||
{
|
||||
|
@ -722,11 +734,15 @@ void GPU_shader_set_srgb_uniform(GPUShader *shader)
|
|||
if (loc != -1) {
|
||||
GPU_shader_uniform_vector_int(shader, loc, 1, 1, &g_shader_builtin_srgb_transform);
|
||||
}
|
||||
g_shader_builtin_srgb_is_dirty = false;
|
||||
}
|
||||
|
||||
void GPU_shader_set_framebuffer_srgb_target(int use_srgb_to_linear)
|
||||
{
|
||||
g_shader_builtin_srgb_transform = use_srgb_to_linear;
|
||||
if (g_shader_builtin_srgb_transform != use_srgb_to_linear) {
|
||||
g_shader_builtin_srgb_transform = use_srgb_to_linear;
|
||||
g_shader_builtin_srgb_is_dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
|
Loading…
Reference in New Issue