[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48168] trunk/blender/source/blender/ editors: display a sample line in the hue correct, handy to sample the image to know what to change

Campbell Barton ideasman42 at gmail.com
Thu Jun 21 16:38:02 CEST 2012


Revision: 48168
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48168
Author:   campbellbarton
Date:     2012-06-21 14:37:56 +0000 (Thu, 21 Jun 2012)
Log Message:
-----------
display a sample line in the hue correct, handy to sample the image to know what to change

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_draw.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/editors/space_node/node_edit.c

Modified: trunk/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_draw.c	2012-06-21 14:12:14 UTC (rev 48167)
+++ trunk/blender/source/blender/editors/interface/interface_draw.c	2012-06-21 14:37:56 UTC (rev 48168)
@@ -1346,7 +1346,7 @@
 
 	cumap = (CurveMapping *)(but->editcumap ? but->editcumap : but->poin);
 	cuma = cumap->cm + cumap->cur;
-	
+
 	/* need scissor test, curve can draw outside of boundary */
 	glGetIntegerv(GL_VIEWPORT, scissor);
 	scissor_new.xmin = ar->winrct.xmin + rect->xmin;
@@ -1424,7 +1424,19 @@
 	/* sample option */
 
 	if (cumap->flag & CUMA_DRAW_SAMPLE) {
-		if (cumap->cur == 3) {
+		if (but->a1 == UI_GRAD_H) {
+			float tsample[3];
+			float hsv[3];
+			linearrgb_to_srgb_v3_v3(tsample, cumap->sample);
+			rgb_to_hsv_v(tsample, hsv);
+			glColor3ub(240, 240, 240);
+
+			glBegin(GL_LINES);
+			glVertex2f(rect->xmin + zoomx * (hsv[0] - offsx), rect->ymin);
+			glVertex2f(rect->xmin + zoomx * (hsv[0] - offsx), rect->ymax);
+			glEnd();
+		}
+		else if (cumap->cur == 3) {
 			float lum = cumap->sample[0] * 0.35f + cumap->sample[1] * 0.45f + cumap->sample[2] * 0.2f;
 			glColor3ub(240, 240, 240);
 			

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c	2012-06-21 14:12:14 UTC (rev 48167)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c	2012-06-21 14:37:56 UTC (rev 48168)
@@ -1926,6 +1926,7 @@
 	
 	if (ibuf == NULL) {
 		ED_space_image_release_buffer(sima, lock);
+		info->draw = 0;
 		return;
 	}
 
@@ -2018,8 +2019,9 @@
 		}
 #endif
 	}
-	else
+	else {
 		info->draw = 0;
+	}
 
 	ED_space_image_release_buffer(sima, lock);
 	ED_area_tag_redraw(CTX_wm_area(C));

Modified: trunk/blender/source/blender/editors/space_node/drawnode.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/drawnode.c	2012-06-21 14:12:14 UTC (rev 48167)
+++ trunk/blender/source/blender/editors/space_node/drawnode.c	2012-06-21 14:37:56 UTC (rev 48168)
@@ -2134,6 +2134,17 @@
 
 static void node_composit_buts_huecorrect(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
 {
+	bNode *node = ptr->data;
+	CurveMapping *cumap = node->storage;
+
+	if (_sample_col[0] != SAMPLE_FLT_ISNONE) {
+		cumap->flag |= CUMA_DRAW_SAMPLE;
+		copy_v3_v3(cumap->sample, _sample_col);
+	}
+	else {
+		cumap->flag &= ~CUMA_DRAW_SAMPLE;
+	}
+
 	uiTemplateCurveMapping(layout, ptr, "mapping", 'h', 0, 0);
 }
 

Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c	2012-06-21 14:12:14 UTC (rev 48167)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c	2012-06-21 14:37:56 UTC (rev 48168)
@@ -1676,10 +1676,12 @@
 	Scene *scene = CTX_data_scene(C);
 	ImageSampleInfo *info = arg_info;
 
-	ED_image_draw_info(ar, (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT), info->channels,
-	                   info->x, info->y, info->col, info->colf,
-	                   NULL, NULL /* zbuf - unused for nodes */
-	                   );
+	if (info->draw) {
+		ED_image_draw_info(ar, (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT), info->channels,
+		                   info->x, info->y, info->col, info->colf,
+		                   NULL, NULL /* zbuf - unused for nodes */
+		                   );
+	}
 }
 
 static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
@@ -1694,8 +1696,10 @@
 	
 	ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
 	ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
-	if (!ibuf)
+	if (!ibuf) {
+		info->draw = 0;
 		return;
+	}
 	
 	if (!ibuf->rect) {
 		if (info->color_manage)




More information about the Bf-blender-cvs mailing list