bugfix [#23355] Square Color picker moving by itself and locking up
[blender-staging.git] / source / blender / blenlib / intern / math_color.c
index f0ef8b2c93d4e2f16c643b12ec0f9982d1b383d8..09a6b5992db9e4ff216672e2cb561808ff173fb6 100644 (file)
@@ -232,6 +232,26 @@ void rgb_to_hsv(float r, float g, float b, float *lh, float *ls, float *lv)
        *lv = v;
 }
 
+void rgb_to_hsv_compat(float r, float g, float b, float *lh, float *ls, float *lv)
+{
+       float orig_h= *lh;
+       float orig_s= *ls;
+
+       rgb_to_hsv(r, g, b, lh, ls, lv);
+
+       if(*lv <= 0.0f) {
+               *lh= orig_h;
+               *ls= orig_s;
+       }
+       else if (*ls <= 0.0f) {
+               *lh= orig_h;
+       }
+
+       if(*lh==0.0f && orig_h >= 1.0f) {
+               *lh= 1.0f;
+       }
+}
+
 /*http://brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html */
 
 void xyz_to_rgb(float xc, float yc, float zc, float *r, float *g, float *b, int colorspace)