[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39083] branches/soc-2011-onion: smooth brush
Antony Riakiotakis
kalast at gmail.com
Fri Aug 5 22:40:58 CEST 2011
Revision: 39083
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39083
Author: psy-fi
Date: 2011-08-05 20:40:57 +0000 (Fri, 05 Aug 2011)
Log Message:
-----------
smooth brush
============
-Move smooth brush state entirely to toolsettings, since this is an edit-mode function and it doesn't make sense to keep as space image flag.
-loading a file with smooth brushes now works
-size doesn't update correctly yet, will check on it
Modified Paths:
--------------
branches/soc-2011-onion/release/scripts/startup/bl_ui/space_image.py
branches/soc-2011-onion/source/blender/blenkernel/intern/paint.c
branches/soc-2011-onion/source/blender/blenloader/intern/readfile.c
branches/soc-2011-onion/source/blender/blenloader/intern/writefile.c
branches/soc-2011-onion/source/blender/editors/object/object_edit.c
branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_uv.c
branches/soc-2011-onion/source/blender/editors/space_image/image_ops.c
branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c
branches/soc-2011-onion/source/blender/makesdna/DNA_scene_types.h
branches/soc-2011-onion/source/blender/makesdna/DNA_space_types.h
branches/soc-2011-onion/source/blender/makesrna/intern/rna_scene.c
branches/soc-2011-onion/source/blender/makesrna/intern/rna_space.c
Modified: branches/soc-2011-onion/release/scripts/startup/bl_ui/space_image.py
===================================================================
--- branches/soc-2011-onion/release/scripts/startup/bl_ui/space_image.py 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/release/scripts/startup/bl_ui/space_image.py 2011-08-05 20:40:57 UTC (rev 39083)
@@ -288,7 +288,7 @@
layout.menu("IMAGE_MT_uvs_showhide")
layout.separator()
- layout.prop(sima, "use_smooth_brush")
+ layout.prop(toolsettings, "use_smooth_brush")
layout.separator()
Modified: branches/soc-2011-onion/source/blender/blenkernel/intern/paint.c
===================================================================
--- branches/soc-2011-onion/source/blender/blenkernel/intern/paint.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/blenkernel/intern/paint.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -71,6 +71,8 @@
return &ts->wpaint->paint;
case OB_MODE_TEXTURE_PAINT:
return &ts->imapaint.paint;
+ case OB_MODE_EDIT:
+ return &ts->uvsmooth->paint;
}
}
Modified: branches/soc-2011-onion/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2011-onion/source/blender/blenloader/intern/readfile.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/blenloader/intern/readfile.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -4442,6 +4442,7 @@
link_paint(fd, sce, &sce->toolsettings->vpaint->paint);
link_paint(fd, sce, &sce->toolsettings->wpaint->paint);
link_paint(fd, sce, &sce->toolsettings->imapaint.paint);
+ link_paint(fd, sce, &sce->toolsettings->uvsmooth->paint);
sce->toolsettings->skgen_template = newlibadr(fd, sce->id.lib, sce->toolsettings->skgen_template);
@@ -4564,6 +4565,7 @@
direct_link_paint(fd, (Paint**)&sce->toolsettings->sculpt);
direct_link_paint(fd, (Paint**)&sce->toolsettings->vpaint);
direct_link_paint(fd, (Paint**)&sce->toolsettings->wpaint);
+ direct_link_paint(fd, (Paint**)&sce->toolsettings->uvsmooth);
if (sce->toolsettings->sculpt)
sce->toolsettings->sculpt->paint.cache= NULL;
@@ -4574,6 +4576,9 @@
if (sce->toolsettings->wpaint)
sce->toolsettings->wpaint->paint.cache= NULL;
+ if (sce->toolsettings->uvsmooth)
+ sce->toolsettings->uvsmooth->paint.cache= NULL;
+
sce->toolsettings->imapaint.paint.cache= NULL;
sce->toolsettings->particle.paintcursor= NULL;
Modified: branches/soc-2011-onion/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/soc-2011-onion/source/blender/blenloader/intern/writefile.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/blenloader/intern/writefile.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -1893,6 +1893,9 @@
if(tos->sculpt) {
writestruct(wd, DATA, "Sculpt", 1, tos->sculpt);
}
+ if(tos->uvsmooth) {
+ writestruct(wd, DATA, "UvSmooth", 1, tos->uvsmooth);
+ }
// write_paint(wd, &tos->imapaint.paint);
Modified: branches/soc-2011-onion/source/blender/editors/object/object_edit.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/object/object_edit.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/editors/object/object_edit.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -90,8 +90,8 @@
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_util.h"
+#include "ED_image.h"
-
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
@@ -516,11 +516,14 @@
static int editmode_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
+ ToolSettings *toolsettings = CTX_data_scene(C)->toolsettings;
if(!CTX_data_edit_object(C))
ED_object_enter_editmode(C, EM_WAITCURSOR);
else
ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* had EM_DO_UNDO but op flag calls undo too [#24685] */
+ ED_space_image_uv_smooth_update(CTX_wm_manager(C), toolsettings);
+
return OPERATOR_FINISHED;
}
Modified: branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -367,8 +367,9 @@
int ED_operator_uvedit_no_smooth(struct bContext *C)
{
SpaceImage *sima= CTX_wm_space_image(C);
+ ToolSettings *toolsettings = CTX_data_scene(C)->toolsettings;
Object *obedit= CTX_data_edit_object(C);
- return ED_space_image_show_uvedit(sima, obedit) && !(sima->flag & SI_SMOOTH_BRUSH);
+ return ED_space_image_show_uvedit(sima, obedit) && !(toolsettings->use_uv_smooth);
}
Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -4541,15 +4541,16 @@
static int uv_smooth_brush_poll(const bContext *C)
{
-// Object *obact = CTX_data_active_object(C);
+ Object *obedit = CTX_data_edit_object(C);
SpaceImage *sima= CTX_wm_space_image(C);
+ ToolSettings *toolsettings = CTX_data_scene(C)->toolsettings;
- if(!uv_smooth_brush(C))
+ if(!uv_smooth_brush(C) || !obedit)
return 0;
if(sima) {
ARegion *ar= CTX_wm_region(C);
- if((sima->flag & SI_SMOOTH_BRUSH) && ar->regiontype==RGN_TYPE_WINDOW)
+ if((toolsettings->use_uv_smooth) && ar->regiontype==RGN_TYPE_WINDOW)
return 1;
}
@@ -5102,6 +5103,23 @@
uv_smooth_brush_poll,
brush_drawcursor,
NULL);
+ if(settings->use_uv_smooth){
+ if(!settings->uvsmooth){
+ settings->uvsmooth = MEM_callocN(sizeof(*settings->uvsmooth), "UV Smooth paint");
+ }
+ paint_mode_init(
+ wm,
+ &(settings->uvsmooth->paint),
+ OB_MODE_TEXTURE_PAINT,
+ uv_smooth_brush_poll,
+ brush_drawcursor,
+ NULL);
+
+ settings->uvsmooth->paint.flags |= PAINT_SHOW_BRUSH;
+ }
+ else {
+ settings->uvsmooth->paint.flags &= ~PAINT_SHOW_BRUSH;
+ }
}
/************************ grab clone operator ************************/
Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_uv.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_uv.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_uv.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -1,5 +1,5 @@
/*
- * $Id: paint_uv.c 39020 2011-08-04 13:55:38Z psy-fi $
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -35,12 +35,8 @@
*/
-#include "paint_stroke.h"
-
#include "MEM_guardedalloc.h"
-#include <stdlib.h>
-#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "DNA_object_types.h"
@@ -49,13 +45,10 @@
#include "BKE_brush.h"
#include "BKE_context.h"
-#include "BKE_paint.h"
#include "BKE_main.h"
#include "BKE_depsgraph.h"
-#include "ED_sculpt.h"
#include "ED_screen.h"
-#include "UI_resources.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -65,12 +58,7 @@
#include "RNA_enum_types.h"
#include "paint_intern.h"
-#include "sculpt_intern.h"
-#include <string.h>
-//#include <stdio.h>
-#include <stddef.h>
-
typedef struct SmoothBrushData{
/* Timer to be used for airbrush-type brush */
wmTimer *timer;
@@ -117,6 +105,7 @@
data = op->customdata;
data->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
+
if(!data->timer){
uv_smooth_stroke_exit(C, op);
return OPERATOR_CANCELLED;
Modified: branches/soc-2011-onion/source/blender/editors/space_image/image_ops.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/space_image/image_ops.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/editors/space_image/image_ops.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -175,8 +175,10 @@
{
SpaceImage *sima= CTX_wm_space_image(C);
Object *obedit= CTX_data_edit_object(C);
+ ToolSettings *toolsettings = CTX_data_scene(C)->toolsettings;
+
if(obedit){
- if(ED_space_image_show_uvedit(sima, obedit) && (sima->flag & SI_SMOOTH_BRUSH))
+ if(ED_space_image_show_uvedit(sima, obedit) && (toolsettings->use_uv_smooth))
return 0;
}
return space_image_main_area_poll(C);
Modified: branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c 2011-08-05 20:40:57 UTC (rev 39083)
@@ -920,6 +920,7 @@
{
int show_uvedit, show_uvshadow, show_texpaint_uvshadow;
Object *paint_ob = CTX_data_active_object(C);
+ ToolSettings *toolsettings = CTX_data_scene(C)->toolsettings;
show_texpaint_uvshadow = (paint_ob && paint_ob->type == OB_MESH && paint_ob->mode == OB_MODE_TEXTURE_PAINT);
show_uvedit= ED_space_image_show_uvedit(sima, obedit);
@@ -935,7 +936,7 @@
draw_uvs_texpaint(sima, scene, paint_ob, ima);
}
- if(show_uvedit && !(sima->flag & SI_SMOOTH_BRUSH))
+ if(show_uvedit && !(toolsettings->use_uv_smooth))
drawcursor_sima(sima, ar);
}
}
Modified: branches/soc-2011-onion/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- branches/soc-2011-onion/source/blender/makesdna/DNA_scene_types.h 2011-08-05 19:55:36 UTC (rev 39082)
+++ branches/soc-2011-onion/source/blender/makesdna/DNA_scene_types.h 2011-08-05 20:40:57 UTC (rev 39083)
@@ -713,7 +713,7 @@
int auto_normalize; /*auto normalizing mode in wpaint*/
short sculpt_paint_settings; /* user preferences for sculpt and paint */
- short pad1;
+ short use_uv_smooth;
int sculpt_paint_unified_size; /* unified radius of brush in pixels */
float sculpt_paint_unified_unprojected_radius;/* unified radius of brush in Blender units */
float sculpt_paint_unified_alpha; /* unified strength of brush */
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list