[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32450] trunk/blender/source/blender/ editors/interface: fix for remaining glitch in square color picker, the backdrop could change color because rgb_to_hsv() was used rather then rgb_to_hsv_compat()

Campbell Barton ideasman42 at gmail.com
Wed Oct 13 16:10:42 CEST 2010


Revision: 32450
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32450
Author:   campbellbarton
Date:     2010-10-13 16:10:42 +0200 (Wed, 13 Oct 2010)

Log Message:
-----------
fix for remaining glitch in square color picker, the backdrop could change color because rgb_to_hsv() was used rather then rgb_to_hsv_compat()

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_draw.c
    trunk/blender/source/blender/editors/interface/interface_intern.h
    trunk/blender/source/blender/editors/interface/interface_widgets.c

Modified: trunk/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_draw.c	2010-10-13 13:53:49 UTC (rev 32449)
+++ trunk/blender/source/blender/editors/interface/interface_draw.c	2010-10-13 14:10:42 UTC (rev 32450)
@@ -1404,7 +1404,7 @@
 	if (but->a1 != -1) {
 		if (but->a1 == UI_GRAD_H) {
 			rcti grid;
-			float col[3];
+			float col[3]= {0.0f, 0.0f, 0.0f}; /* dummy arg */
 			
 			grid.xmin = rect->xmin + zoomx*(-offsx);
 			grid.xmax = rect->xmax + zoomx*(-offsx);

Modified: trunk/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_intern.h	2010-10-13 13:53:49 UTC (rev 32449)
+++ trunk/blender/source/blender/editors/interface/interface_intern.h	2010-10-13 14:10:42 UTC (rev 32450)
@@ -444,7 +444,7 @@
 /* interface_draw.c */
 extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select);
 
-void ui_draw_gradient(rcti *rect, float *rgb, int type, float alpha);
+void ui_draw_gradient(rcti *rect, float *hsv, int type, float alpha);
 
 void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
 void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2010-10-13 13:53:49 UTC (rev 32449)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2010-10-13 14:10:42 UTC (rev 32450)
@@ -1725,16 +1725,14 @@
 /* ************ custom buttons, old stuff ************** */
 
 /* draws in resolution of 20x4 colors */
-void ui_draw_gradient(rcti *rect, float *rgb, int type, float alpha)
+void ui_draw_gradient(rcti *rect, float *hsv, int type, float alpha)
 {
 	int a;
-	float h, s, v;
+	float h= hsv[0], s= hsv[1], v= hsv[0];
 	float dx, dy, sx1, sx2, sy;
 	float col0[4][3];	// left half, rect bottom to top
 	float col1[4][3];	// right half, rect bottom to top
-	
-	rgb_to_hsv(rgb[0], rgb[1], rgb[2], &h, &s, &v);
-	
+
 	/* draw series of gouraud rects */
 	glShadeModel(GL_SMOOTH);
 	
@@ -1860,6 +1858,7 @@
 	float rgb[3], h,s,v;
 	float x=0.0f, y=0.0f;
 	float *hsv= ui_block_hsv_get(but->block);
+	float hsvn[3];
 	
 	h= hsv[0];
 	s= hsv[1];
@@ -1867,8 +1866,12 @@
 	
 	ui_get_but_vectorf(but, rgb);
 	rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], &h, &s, &v);
+
+	hsvn[0]= h;
+	hsvn[1]= s;
+	hsvn[2]= v;
 	
-	ui_draw_gradient(rect, rgb, but->a1, 1.f);
+	ui_draw_gradient(rect, hsvn, but->a1, 1.f);
 	
 	switch((int)but->a1) {
 		case UI_GRAD_SV:





More information about the Bf-blender-cvs mailing list