[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