[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22549] branches/blender2.5/blender: 2. 5 Paint:

Nicholas Bishop nicholasbishop at gmail.com
Mon Aug 17 04:49:34 CEST 2009


Revision: 22549
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22549
Author:   nicholasbishop
Date:     2009-08-17 04:49:31 +0200 (Mon, 17 Aug 2009)

Log Message:
-----------
2.5 Paint:

* Converted vertex paint and weight paint to use the new Paint type

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/space_view3d_toolbar.py
    branches/blender2.5/blender/source/blender/blenkernel/BKE_brush.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_paint.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c
    branches/blender2.5/blender/source/blender/editors/object/object_vgroup.c
    branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_image.c
    branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_ops.c
    branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c
    branches/blender2.5/blender/source/blender/editors/sculpt_paint/sculpt.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_sculpt_paint.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c

Modified: branches/blender2.5/blender/release/ui/space_view3d_toolbar.py
===================================================================
--- branches/blender2.5/blender/release/ui/space_view3d_toolbar.py	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/release/ui/space_view3d_toolbar.py	2009-08-17 02:49:31 UTC (rev 22549)
@@ -292,10 +292,11 @@
 		
 		settings = self.paint_settings(context)
 		brush = settings.brush
+		paint = context.sculpt_object or context.vertex_paint_object
 
 		if not context.particle_edit_object:
 			col = layout.split().column()
-			if context.sculpt_object:
+			if paint:
 				row = col.row()
 				row.template_list(settings, "brushes", settings, "active_brush_index", rows=2)
 				
@@ -303,10 +304,11 @@
 				sub_col.itemO("paint.brush_slot_add", icon="ICON_ZOOMIN", text="")
 				sub_col.itemO("paint.brush_slot_remove", icon="ICON_ZOOMOUT", text="")
 
-		col.template_ID(settings, "brush")
-
-		if(context.sculpt_object):
-			col.item_menu_enumO("brush.new", "sculpt_tool");
+		if context.sculpt_object:
+			col.template_ID(settings, "brush")
+			col.item_menu_enumO("sculpt.brush_add", "sculpt_tool");
+		else:
+			col.template_ID(settings, "brush", new="brush.add")
                 
 		# Particle Mode #
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_brush.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_brush.h	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_brush.h	2009-08-17 02:49:31 UTC (rev 22549)
@@ -44,9 +44,9 @@
 void free_brush(struct Brush *brush);
 
 /* brush library operations used by different paint panels */
-int brush_set_nr(struct Brush **current_brush, int nr);
+int brush_set_nr(struct Brush **current_brush, int nr, const char *name);
 int brush_delete(struct Brush **current_brush);
-void brush_check_exists(struct Brush **brush);
+void brush_check_exists(struct Brush **brush, const char *name);
 void brush_toggled_fake_user(struct Brush *brush);
 int brush_texture_set_nr(struct Brush *brush, int nr);
 int brush_texture_delete(struct Brush *brush);

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_paint.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_paint.h	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_paint.h	2009-08-17 02:49:31 UTC (rev 22549)
@@ -33,6 +33,7 @@
 struct Paint;
 struct Scene;
 
+void paint_init(Paint *p, const char *brush_name);
 void free_paint(Paint *p);
 void copy_paint(Paint *orig, Paint *new);
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-08-17 02:49:31 UTC (rev 22549)
@@ -186,7 +186,7 @@
 
 /* Library Operations */
 
-int brush_set_nr(Brush **current_brush, int nr)
+int brush_set_nr(Brush **current_brush, int nr, const char *name)
 {
 	ID *idtest, *id;
 	
@@ -195,7 +195,7 @@
 	
 	if(idtest==0) { /* new brush */
 		if(id) idtest= (ID *)copy_brush((Brush *)id);
-		else idtest= (ID *)add_brush("Brush");
+		else idtest= (ID *)add_brush(name);
 		idtest->us--;
 	}
 	if(idtest!=id) {
@@ -369,10 +369,10 @@
 	return 0;
 }
 
-void brush_check_exists(Brush **brush)
+void brush_check_exists(Brush **brush, const char *name)
 {
 	if(*brush==NULL)
-		brush_set_nr(brush, 1);
+		brush_set_nr(brush, 1, name);
 }
 
 /* Brush Sampling */

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c	2009-08-17 02:49:31 UTC (rev 22549)
@@ -41,17 +41,20 @@
 Paint *paint_get_active(Scene *sce)
 {
 	if(sce && sce->basact && sce->basact->object) {
+		ToolSettings *ts = sce->toolsettings;
+
 		switch(sce->basact->object->mode) {
 		case OB_MODE_SCULPT:
-			return &sce->toolsettings->sculpt->paint;
+			return &ts->sculpt->paint;
+		case OB_MODE_VERTEX_PAINT:
+			return &ts->vpaint->paint;
+		case OB_MODE_WEIGHT_PAINT:
+			return &ts->wpaint->paint;
+		case OB_MODE_TEXTURE_PAINT:
+			break;
+			//return &ts->imapaint->paint;
 		}
 	}
-	/*else if(G.f & G_VERTEXPAINT)
-		return &sce->toolsettings->vpaint->paint;
-	else if(G.f & G_WEIGHTPAINT)
-		return &sce->toolsettings->wpaint->paint;
-	else if(G.f & G_TEXTUREPAINT)
-	return &sce->toolsettings->imapaint.paint;*/
 
 	return NULL;
 }
@@ -137,6 +140,16 @@
 
 }
 
+void paint_init(Paint *p, const char *name)
+{
+	Brush *brush;
+
+	/* If there's no brush, create one */
+	brush = paint_brush(p);
+	brush_check_exists(&brush, name);
+	paint_brush_set(p, brush);
+}
+
 void free_paint(Paint *paint)
 {
 	if(paint->brushes)

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/scene.c	2009-08-17 02:49:31 UTC (rev 22549)
@@ -163,14 +163,14 @@
 				ts->vpaint->paintcursor= NULL;
 				ts->vpaint->vpaint_prev= NULL;
 				ts->vpaint->wpaint_prev= NULL;
-				id_us_plus((ID *)ts->vpaint->brush);
+				copy_paint(&ts->vpaint->paint, &ts->vpaint->paint);
 			}
 			if(ts->wpaint) {
 				ts->wpaint= MEM_dupallocN(ts->wpaint);
 				ts->wpaint->paintcursor= NULL;
 				ts->wpaint->vpaint_prev= NULL;
 				ts->wpaint->wpaint_prev= NULL;
-				id_us_plus((ID *)ts->wpaint->brush);
+				copy_paint(&ts->wpaint->paint, &ts->wpaint->paint);
 			}
 			if(ts->sculpt) {
 				ts->sculpt= MEM_dupallocN(ts->sculpt);
@@ -272,10 +272,14 @@
 	BLI_freelistN(&sce->r.layers);
 	
 	if(sce->toolsettings) {
-		if(sce->toolsettings->vpaint)
+		if(sce->toolsettings->vpaint) {
+			free_paint(&sce->toolsettings->vpaint->paint);
 			MEM_freeN(sce->toolsettings->vpaint);
-		if(sce->toolsettings->wpaint)
+		}
+		if(sce->toolsettings->wpaint) {
+			free_paint(&sce->toolsettings->wpaint->paint);
 			MEM_freeN(sce->toolsettings->wpaint);
+		}
 		if(sce->toolsettings->sculpt) {
 			free_paint(&sce->toolsettings->sculpt->paint);
 			MEM_freeN(sce->toolsettings->sculpt);

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-08-17 02:49:31 UTC (rev 22549)
@@ -4046,14 +4046,9 @@
 				newlibadr_us(fd, sce->id.lib, sce->toolsettings->imapaint.brush);
 
 			link_paint(fd, sce, &sce->toolsettings->sculpt->paint);
+			link_paint(fd, sce, &sce->toolsettings->vpaint->paint);
+			link_paint(fd, sce, &sce->toolsettings->wpaint->paint);
 
-			if(sce->toolsettings->vpaint)
-				sce->toolsettings->vpaint->brush=
-					newlibadr_us(fd, sce->id.lib, sce->toolsettings->vpaint->brush);
-			if(sce->toolsettings->wpaint)
-				sce->toolsettings->wpaint->brush=
-					newlibadr_us(fd, sce->id.lib, sce->toolsettings->wpaint->brush);
-			
 			sce->toolsettings->skgen_template = newlibadr(fd, sce->id.lib, sce->toolsettings->skgen_template);
 
 			for(base= sce->base.first; base; base= next) {
@@ -4160,9 +4155,9 @@
 	
 	sce->toolsettings= newdataadr(fd, sce->toolsettings);
 	if(sce->toolsettings) {
-		sce->toolsettings->vpaint= newdataadr(fd, sce->toolsettings->vpaint);
-		sce->toolsettings->wpaint= newdataadr(fd, sce->toolsettings->wpaint);
 		direct_link_paint(fd, (Paint**)&sce->toolsettings->sculpt);
+		direct_link_paint(fd, (Paint**)&sce->toolsettings->vpaint);
+		direct_link_paint(fd, (Paint**)&sce->toolsettings->wpaint);
 
 		sce->toolsettings->imapaint.paintcursor= NULL;
 		sce->toolsettings->particle.paintcursor= NULL;

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c	2009-08-17 02:49:31 UTC (rev 22549)
@@ -1713,10 +1713,14 @@
 		
 		tos = sce->toolsettings;
 		writestruct(wd, DATA, "ToolSettings", 1, tos);
-		if(tos->vpaint)
+		if(tos->vpaint) {
 			writestruct(wd, DATA, "VPaint", 1, tos->vpaint);
-		if(tos->wpaint)
+			write_paint(wd, &tos->vpaint->paint);
+		}
+		if(tos->wpaint) {
 			writestruct(wd, DATA, "VPaint", 1, tos->wpaint);
+			write_paint(wd, &tos->wpaint->paint);
+		}
 		if(tos->sculpt) {
 			writestruct(wd, DATA, "Sculpt", 1, tos->sculpt);
 			write_paint(wd, &tos->sculpt->paint);

Modified: branches/blender2.5/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_vgroup.c	2009-08-17 01:16:50 UTC (rev 22548)
+++ branches/blender2.5/blender/source/blender/editors/object/object_vgroup.c	2009-08-17 02:49:31 UTC (rev 22549)
@@ -57,6 +57,7 @@
 #include "BKE_global.h"
 #include "BKE_lattice.h"
 #include "BKE_mesh.h"
+#include "BKE_paint.h"
 #include "BKE_utildefines.h"
 
 #include "RNA_access.h"
@@ -1028,11 +1029,11 @@
 	switch (mode) {
 		case 1: /* add to new group */
 			add_defgroup(ob);
-			assign_verts_defgroup(ob, wp->brush->alpha);
+			assign_verts_defgroup(ob, paint_brush(&wp->paint)->alpha);
 			BIF_undo_push("Assign to vertex group");
 			break;
 		case 2: /* add to current group */
-			assign_verts_defgroup(ob, wp->brush->alpha);
+			assign_verts_defgroup(ob, paint_brush(&wp->paint)->alpha);
 			BIF_undo_push("Assign to vertex group");
 			break;
 		case 3:	/* remove from current group */

Modified: branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_image.c
===================================================================

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list