[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30744] branches/soc-2010-jwilkins: Merged 30731-30741

Jason Wilkins Jason.A.Wilkins at gmail.com
Mon Jul 26 08:09:02 CEST 2010


Revision: 30744
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30744
Author:   jwilkins
Date:     2010-07-26 08:09:02 +0200 (Mon, 26 Jul 2010)

Log Message:
-----------
Merged 30731-30741
nicholasbishop finished up his work fixing up brush icons

Modified Paths:
--------------
    branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py
    branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h
    branches/soc-2010-jwilkins/source/blender/blenkernel/intern/icons.c
    branches/soc-2010-jwilkins/source/blender/blenkernel/intern/paint.c
    branches/soc-2010-jwilkins/source/blender/editors/interface/interface_icons.c
    branches/soc-2010-jwilkins/source/blender/editors/interface/interface_templates.c
    branches/soc-2010-jwilkins/source/blender/editors/interface/interface_widgets.c
    branches/soc-2010-jwilkins/source/blender/editors/render/render_preview.c
    branches/soc-2010-jwilkins/source/blender/editors/space_image/image_ops.c
    branches/soc-2010-jwilkins/source/blender/makesdna/DNA_brush_types.h
    branches/soc-2010-jwilkins/source/blender/makesrna/RNA_access.h
    branches/soc-2010-jwilkins/source/blender/makesrna/RNA_enum_types.h
    branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_access.c
    branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c
    branches/soc-2010-jwilkins/source/blender/python/intern/bpy_interface.c
    branches/soc-2010-jwilkins/source/blender/render/intern/source/pointdensity.c

Modified: branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py
===================================================================
--- branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py	2010-07-26 06:09:02 UTC (rev 30744)
@@ -1085,17 +1085,15 @@
         else:
             col.prop(brush, "add_col", text="Color")
 
-        col.separator()
-
         col = layout.column()
         col.label(text="Icon:")
 
         row = col.row(align=True)
-        row.prop(brush, "icon", text="")
+        row.prop(brush, "use_custom_icon")
+        if brush.use_custom_icon:
+            row = col.row(align=True)
+            row.prop(brush, "icon_filepath", text="")
 
-        row = col.row(align=True)
-        row.prop(brush, "icon_filepath", text="")
-
 # ********** default tools for weightpaint ****************
 
 

Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h	2010-07-26 06:09:02 UTC (rev 30744)
@@ -60,6 +60,8 @@
  * however hiding faces is useful */
 int paint_facesel_test(struct Object *ob);
 
+int paint_has_brush(struct Paint *p, struct Brush *brush);
+
 /* Session data (mode-specific) */
 
 typedef struct SculptSession {

Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/intern/icons.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenkernel/intern/icons.c	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/blenkernel/intern/icons.c	2010-07-26 06:09:02 UTC (rev 30744)
@@ -178,7 +178,7 @@
 		Image *img  = (Image*)id;
 		BKE_previewimg_free(&img->preview);
 	} else if (GS(id->name) == ID_BR) {
-		Brush *br  = (Brush*)br;
+		Brush *br  = (Brush*)id;
 		BKE_previewimg_free(&br->preview);
 	}
 }

Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/intern/paint.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenkernel/intern/paint.c	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/blenkernel/intern/paint.c	2010-07-26 06:09:02 UTC (rev 30744)
@@ -192,3 +192,15 @@
 			id_us_plus((ID *)new->brushes[i]);
 	}
 }
+
+int paint_has_brush(Paint *p, Brush *brush)
+{
+	int i;
+
+	for (i= 0; i < p->brush_count; i++) {
+		if (strcmp(brush->id.name+2, p->brushes[i]->id.name+2) == 0) 
+			return 1;
+	}
+
+	return 0;
+}

Modified: branches/soc-2010-jwilkins/source/blender/editors/interface/interface_icons.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/interface/interface_icons.c	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/editors/interface/interface_icons.c	2010-07-26 06:09:02 UTC (rev 30744)
@@ -44,10 +44,14 @@
 #include "BLI_blenlib.h"
 #include "BLI_storage_types.h"
 
+#include "DNA_brush_types.h"
+#include "DNA_object_types.h"
 #include "DNA_screen_types.h"
 #include "DNA_userdef_types.h"
-#include "DNA_brush_types.h"
 
+#include "RNA_access.h"
+#include "RNA_enum_types.h"
+
 #include "BKE_context.h"
 #include "BKE_global.h"
 #include "BKE_image.h"
@@ -1009,6 +1013,43 @@
 	}
 }
 
+static int ui_id_brush_get_icon(bContext *C, ID *id, int preview)
+{
+	Brush *br = (Brush*)id;
+
+	if(br->flag & BRUSH_CUSTOM_ICON) {
+		BKE_icon_getid(id);
+		ui_id_icon_render(C, id, preview);
+	}
+	else if(!id->icon_id) {
+		/* no icon found, reset it */
+		
+		/* this is not nice, should probably make
+		   brushes be strictly in one paint mode only
+		   to avoid this kind of thing */
+		Object *ob = CTX_data_active_object(C);
+		EnumPropertyItem *items;
+		int tool;
+		
+		if(ob->mode & OB_MODE_SCULPT) {
+			items = brush_sculpt_tool_items;
+			tool = br->sculpt_tool;
+		}
+		else if(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT)) {
+			items = brush_vertexpaint_tool_items;
+			tool = br->vertexpaint_tool;
+		}
+		else {
+			items = brush_imagepaint_tool_items;
+			tool = br->imagepaint_tool;
+		}
+
+		RNA_enum_icon_from_value(items, tool, &id->icon_id);
+	}
+
+	return id->icon_id;
+}
+
 int ui_id_icon_get(bContext *C, ID *id, int preview)
 {
 	int iconid= 0;
@@ -1016,12 +1057,14 @@
 	/* icon */
 	switch(GS(id->name))
 	{
+		case ID_BR:
+			iconid= ui_id_brush_get_icon(C, id, preview);
+			break;
 		case ID_MA: /* fall through */
 		case ID_TE: /* fall through */
 		case ID_IM: /* fall through */
 		case ID_WO: /* fall through */
 		case ID_LA: /* fall through */
-		case ID_BR: /* fall through */
 			iconid= BKE_icon_getid(id);
 			/* checks if not exists, or changed */
 			ui_id_icon_render(C, id, preview);

Modified: branches/soc-2010-jwilkins/source/blender/editors/interface/interface_templates.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/interface/interface_templates.c	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/editors/interface/interface_templates.c	2010-07-26 06:09:02 UTC (rev 30744)
@@ -466,6 +466,10 @@
 			if(!id_copy(id, NULL, 1 /* test only */) || (idfrom && idfrom->lib))
 				uiButSetFlag(but, UI_BUT_DISABLED);
 		}
+		
+		if(id->lib == NULL && !(ELEM4(GS(id->name), ID_GR, ID_SCE, ID_SCR, ID_TXT))) {
+			uiDefButR(block, TOG, 0, "F", 0, 0, UI_UNIT_X, UI_UNIT_Y, &idptr, "fake_user", -1, 0, 0, -1, -1, NULL);
+		}
 	}
 	
 	if(flag & UI_ID_ADD_NEW) {

Modified: branches/soc-2010-jwilkins/source/blender/editors/interface/interface_widgets.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/interface/interface_widgets.c	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/editors/interface/interface_widgets.c	2010-07-26 06:09:02 UTC (rev 30744)
@@ -747,11 +747,7 @@
 static void widget_draw_preview(BIFIconID icon, float aspect, float alpha, rcti *rect)
 {
 	int w, h, x, y, size;
-	
-	/* only display previews for actual preview images .. ? */
-	if (icon < BIFICONID_LAST)
-		return;
-	
+
 	w = rect->xmax - rect->xmin;
 	h = rect->ymax - rect->ymin;
 	size = MIN2(w, h);

Modified: branches/soc-2010-jwilkins/source/blender/editors/render/render_preview.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/render/render_preview.c	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/editors/render/render_preview.c	2010-07-26 06:09:02 UTC (rev 30744)
@@ -104,83 +104,13 @@
 
 ImBuf* get_brush_icon(Brush *brush)
 {
-	void *icon_data[]= {
-		0,
-
-		&datatoc_blob_png,
-		&datatoc_clay_png,
-		&datatoc_crease_png,
-		&datatoc_draw_png,
-		&datatoc_fill_png,
-		&datatoc_flatten_png,
-		&datatoc_grab_png,
-		&datatoc_inflate_png,
-		&datatoc_layer_png,
-		&datatoc_nudge_png,
-		&datatoc_pinch_png,
-		&datatoc_scrape_png,
-		&datatoc_smooth_png,
-		&datatoc_snake_hook_png,
-		&datatoc_thumb_png,
-		&datatoc_twist_png,
-
-		&datatoc_add_png,
-		&datatoc_blur_png,
-		&datatoc_clone_png,
-		&datatoc_darken_png,
-		&datatoc_lighten_png,
-		&datatoc_mix_png,
-		&datatoc_multiply_png,
-		&datatoc_smear_png,
-		&datatoc_soften_png,
-		&datatoc_subtract_png,
-		&datatoc_texdraw_png,
-		&datatoc_vertexdraw_png,
-	};
-
-	size_t icon_size[]= {
-		0,
-
-		datatoc_blob_png_size,
-		datatoc_clay_png_size,
-		datatoc_crease_png_size,
-		datatoc_draw_png_size,
-		datatoc_fill_png_size,
-		datatoc_flatten_png_size,
-		datatoc_grab_png_size,
-		datatoc_inflate_png_size,
-		datatoc_layer_png_size,
-		datatoc_nudge_png_size,
-		datatoc_pinch_png_size,
-		datatoc_scrape_png_size,
-		datatoc_smooth_png_size,
-		datatoc_snake_hook_png_size,
-		datatoc_thumb_png_size,
-		datatoc_twist_png_size,
-
-		datatoc_add_png_size,
-		datatoc_blur_png_size,
-		datatoc_clone_png_size,
-		datatoc_darken_png_size,
-		datatoc_lighten_png_size,
-		datatoc_mix_png_size,
-		datatoc_multiply_png_size,
-		datatoc_smear_png_size,
-		datatoc_soften_png_size,
-		datatoc_subtract_png_size,
-		datatoc_texdraw_png_size,
-		datatoc_vertexdraw_png_size,
-	};
-
 	static const int flags = IB_rect|IB_multilayer|IB_metadata;
 
-	static const int default_icon = BRUSH_ICON_SCULPTDRAW;
-
 	char path[240];
 	char *folder;
 
 	if (!(brush->icon_imbuf)) {
-		if (brush->icon==BRUSH_ICON_FILE) {
+		if (brush->flag & BRUSH_CUSTOM_ICON) {
 
 			if (brush->icon_filepath[0]) {
 				// first use the path directly to try and load the file
@@ -202,21 +132,13 @@
 						brush->icon_imbuf= IMB_loadiffname(path, flags);
 				}
 			}
-
-			// if all else fails use a default image
-			if (!(brush->icon_imbuf))
-				brush->icon_imbuf= IMB_ibImageFromMemory(icon_data[default_icon], icon_size[default_icon], flags);
 		}
-		else {
-			if (!(brush->icon_imbuf))
-				brush->icon_imbuf= IMB_ibImageFromMemory(icon_data[brush->icon], icon_size[brush->icon], flags);
-		}
-
-		BKE_icon_changed(BKE_icon_getid(&(brush->id)));
 	}
 
 	if (!(brush->icon_imbuf))
-		printf("get_brush_icon: unable to resolve brush icon imbuf\n");
+		brush->id.icon_id = 0;
+	else
+		BKE_icon_changed(BKE_icon_getid(&(brush->id)));
 
 	return brush->icon_imbuf;
 }

Modified: branches/soc-2010-jwilkins/source/blender/editors/space_image/image_ops.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/space_image/image_ops.c	2010-07-26 05:55:56 UTC (rev 30743)
+++ branches/soc-2010-jwilkins/source/blender/editors/space_image/image_ops.c	2010-07-26 06:09:02 UTC (rev 30744)
@@ -2085,8 +2085,8 @@
 					View3D *v3d= sa->spacedata.first;
 					BGpic *bgpic;
 					for(bgpic= v3d->bgpicbase.first; bgpic; bgpic= bgpic->next)
-						if(v3d->bgpic->iuser.flag & IMA_ANIM_ALWAYS)
-							BKE_image_user_calc_frame(&v3d->bgpic->iuser, scene->r.cfra, 0);
+						if(bgpic->iuser.flag & IMA_ANIM_ALWAYS)
+							BKE_image_user_calc_frame(&bgpic->iuser, scene->r.cfra, 0);
 				}
 				else if(sa->spacetype==SPACE_IMAGE) {
 					SpaceImage *sima= sa->spacedata.first;

Modified: branches/soc-2010-jwilkins/source/blender/makesdna/DNA_brush_types.h
===================================================================

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list