[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35254] trunk/blender/source/blender/ editors/space_image/image_ops.c: minor change for image invert operator

Campbell Barton ideasman42 at gmail.com
Mon Feb 28 04:17:21 CET 2011


Revision: 35254
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35254
Author:   campbellbarton
Date:     2011-02-28 03:17:20 +0000 (Mon, 28 Feb 2011)
Log Message:
-----------
minor change for image invert operator
- dirty var wasn't being used.
- only call IMB_rect_from_float if there was previously a rect buffer.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_image/image_ops.c

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c	2011-02-27 20:48:28 UTC (rev 35253)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c	2011-02-28 03:17:20 UTC (rev 35254)
@@ -1366,19 +1366,18 @@
 {
 	Image *ima= CTX_data_edit_image(C);
 	ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
-	
+
 	// flags indicate if this channel should be inverted
-	short r,g,b,a;
-	int i, dirty = 0;
-	
+	const short r= RNA_boolean_get(op->ptr, "invert_r");
+	const short g= RNA_boolean_get(op->ptr, "invert_g");
+	const short b= RNA_boolean_get(op->ptr, "invert_b");
+	const short a= RNA_boolean_get(op->ptr, "invert_a");
+
+	int i;
+
 	if( ibuf == NULL) // TODO: this should actually never happen, but does for render-results -> cleanup
 		return OPERATOR_CANCELLED;
-	
-	r = RNA_boolean_get(op->ptr, "invert_r");
-	g = RNA_boolean_get(op->ptr, "invert_g");
-	b = RNA_boolean_get(op->ptr, "invert_b");
-	a = RNA_boolean_get(op->ptr, "invert_a");
-	
+
 	/* TODO: make this into an IMB_invert_channels(ibuf,r,g,b,a) method!? */
 	if (ibuf->rect_float) {
 		
@@ -1389,8 +1388,10 @@
 			if( b ) fp[2] = 1.0f - fp[2];
 			if( a ) fp[3] = 1.0f - fp[3];
 		}
-		dirty = 1;
-		IMB_rect_from_float(ibuf);
+
+		if(ibuf->rect) {
+			IMB_rect_from_float(ibuf);
+		}
 	}
 	else if(ibuf->rect) {
 		
@@ -1401,16 +1402,14 @@
 			if( b ) cp[2] = 255 - cp[2];
 			if( a ) cp[3] = 255 - cp[3];
 		}
-		dirty = 1;
 	}
-	else
+	else {
 		return OPERATOR_CANCELLED;
+	}
 
-	ibuf->userflags |= IB_BITMAPDIRTY; // mark as modified
+	ibuf->userflags |= IB_BITMAPDIRTY;
 	WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
-	
 	return OPERATOR_FINISHED;
-	
 }
 
 void IMAGE_OT_invert(wmOperatorType *ot)




More information about the Bf-blender-cvs mailing list