[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58760] branches/soc-2013-paint/source/ blender/editors/sculpt_paint: * Support undo for bucket fill
Antony Riakiotakis
kalast at gmail.com
Wed Jul 31 11:42:07 CEST 2013
Revision: 58760
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58760
Author: psy-fi
Date: 2013-07-31 09:42:07 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
* Support undo for bucket fill
* Color correct brush color properly.
Modified Paths:
--------------
branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image.c
branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image_2d.c
Modified: branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image.c
===================================================================
--- branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image.c 2013-07-31 09:18:40 UTC (rev 58759)
+++ branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image.c 2013-07-31 09:42:07 UTC (rev 58760)
@@ -1296,11 +1296,13 @@
Paint *p = BKE_paint_get_active(CTX_data_scene(C));
Brush *br = BKE_paint_brush(p);
- copy_v3_v3(color, br->rgb);
+ srgb_to_linearrgb_v3_v3(color, br->rgb);
}
mode = BKE_paintmode_get_active_from_context(C);
+ undo_paint_push_begin(UNDO_PAINT_IMAGE, op->type->name,
+ image_undo_restore, image_undo_free);
switch(mode) {
case PAINT_TEXTURE_2D:
paint_2d_bucket_fill(C, color);
@@ -1311,6 +1313,8 @@
break;
}
+ undo_paint_push_end(UNDO_PAINT_IMAGE);
+
RNA_float_set_array(op->ptr, "color", color);
return OPERATOR_FINISHED;
@@ -1329,7 +1333,7 @@
ot->poll = image_paint_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER;
+ ot->flag = OPTYPE_UNDO | OPTYPE_BLOCKING;
RNA_def_float_color(ot->srna, "color", 3, NULL, 0.0, 1.0, "Color", "Color for bucket fill", 0.0, 1.0);
}
Modified: branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image_2d.c
===================================================================
--- branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image_2d.c 2013-07-31 09:18:40 UTC (rev 58759)
+++ branches/soc-2013-paint/source/blender/editors/sculpt_paint/paint_image_2d.c 2013-07-31 09:42:07 UTC (rev 58760)
@@ -1232,6 +1232,9 @@
ibuf = BKE_image_acquire_ibuf(ima, &sima->iuser, NULL);
+ if (!ibuf)
+ return;
+
do_float = (ibuf->rect_float != NULL);
/* first check if our image is float. If it is not we should correct the colour to
* be in gamma space */
@@ -1244,6 +1247,9 @@
color_f[3] = 1.0;
}
+ /* this will be substituted by something else when selection is available */
+ imapaint_dirty_region(ima, ibuf, 0, 0, ibuf->x, ibuf->y);
+
if (do_float) {
for (; i < ibuf->x; i++) {
for (j = 0; j < ibuf->y; j++) {
@@ -1259,11 +1265,10 @@
}
}
- ibuf->userflags |= IB_BITMAPDIRTY;
+ imapaint_image_update(sima, ima, ibuf, false);
+ imapaint_clear_partial_redraw();
BKE_image_release_ibuf(ima, ibuf, NULL);
- GPU_free_image(ima);
-
WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, ima);
}
More information about the Bf-blender-cvs
mailing list