From 39450985897379f795ab546eb3bb1dc55010a3f8 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sun, 20 Nov 2016 23:44:08 +0100 Subject: [PATCH] Optimised GTX_color_space_YCoCg YCoCgR conversions --- glm/gtx/color_space_YCoCg.inl | 8 ++++---- readme.md | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/glm/gtx/color_space_YCoCg.inl b/glm/gtx/color_space_YCoCg.inl index 1ca2e5be..bfff3519 100644 --- a/glm/gtx/color_space_YCoCg.inl +++ b/glm/gtx/color_space_YCoCg.inl @@ -38,9 +38,9 @@ namespace glm ) { tvec3 result; - result.x/*Y */ = rgbColor.g / T(2) + (rgbColor.r + rgbColor.b) / T(4); + result.x/*Y */ = rgbColor.g * static_cast(0.5) + (rgbColor.r + rgbColor.b) * static_cast(0.25); result.y/*Co*/ = rgbColor.r - rgbColor.b; - result.z/*Cg*/ = rgbColor.g - (rgbColor.r + rgbColor.b) / T(2); + result.z/*Cg*/ = rgbColor.g - (rgbColor.r + rgbColor.b) * static_cast(0.5); return result; } @@ -50,9 +50,9 @@ namespace glm ) { tvec3 result; - T tmp = YCoCgRColor.x - (YCoCgRColor.z / T(2)); + T tmp = YCoCgRColor.x - (YCoCgRColor.z * static_cast(0.5)); result.g = YCoCgRColor.z + tmp; - result.b = tmp - (YCoCgRColor.y / T(2)); + result.b = tmp - (YCoCgRColor.y * static_cast(0.5)); result.r = result.b + YCoCgRColor.y; return result; } diff --git a/readme.md b/readme.md index a177f01b..fc3100e2 100644 --- a/readme.md +++ b/readme.md @@ -65,6 +65,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Optimized GTC_packing implementation - Optimized GTC_noise functions - Optimized GTC_color_space HSV to RGB conversions +- Optimised GTX_color_space_YCoCg YCoCgR conversions - Optimized GTX_matrix_interpolation axisAngle function - Added FAQ 12: Windows headers cause build errors... #557