diff options
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/GPU_immediate.h | 5 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_immediate.c | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/gpu/GPU_immediate.h b/source/blender/gpu/GPU_immediate.h index 08362c35845..6bcfdc74ef6 100644 --- a/source/blender/gpu/GPU_immediate.h +++ b/source/blender/gpu/GPU_immediate.h @@ -91,3 +91,8 @@ void immVertex3fv(unsigned attrib_id, const float data[3]); // provide values that don't change for the entire draw call void immUniform4f(const char* name, float x, float y, float z, float w); + +// these set "uniform vec4 color" +// TODO: treat as sRGB? +void immUniformColor3ubv(const unsigned char data[3]); +void immUniformColor4ubv(const unsigned char data[4]); diff --git a/source/blender/gpu/intern/gpu_immediate.c b/source/blender/gpu/intern/gpu_immediate.c index d250bcc78f9..7d32ba3f8d9 100644 --- a/source/blender/gpu/intern/gpu_immediate.c +++ b/source/blender/gpu/intern/gpu_immediate.c @@ -729,3 +729,15 @@ void immUniform4f(const char* name, float x, float y, float z, float w) glUniform4f(loc, x, y, z, w); } + +void immUniformColor3ubv(const unsigned char rgb[3]) + { + const float scale = 1.0f / 255.0f; + immUniform4f("color", scale * rgb[0], scale * rgb[1], scale * rgb[2], 1.0f); + } + +void immUniformColor4ubv(const unsigned char rgba[4]) + { + const float scale = 1.0f / 255.0f; + immUniform4f("color", scale * rgba[0], scale * rgba[1], scale * rgba[2], rgba[3]); + } |