[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30733] trunk/blender/source/blender: * Factored out some duplicated code from rna_brush into paint.c, added a new function that checks whether a brush is used by that paint struct

Nicholas Bishop nicholasbishop at gmail.com
Mon Jul 26 04:35:44 CEST 2010


Revision: 30733
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30733
Author:   nicholasbishop
Date:     2010-07-26 04:35:43 +0200 (Mon, 26 Jul 2010)

Log Message:
-----------
* Factored out some duplicated code from rna_brush into paint.c, added a new function that checks whether a brush is used by that paint struct
* Fixed an improperly initialized variable in BKE_previewing_free_id
* Added an RNA access function to get the icon associated with a value

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_paint.h
    trunk/blender/source/blender/blenkernel/intern/icons.c
    trunk/blender/source/blender/blenkernel/intern/paint.c
    trunk/blender/source/blender/makesrna/RNA_access.h
    trunk/blender/source/blender/makesrna/intern/rna_access.c
    trunk/blender/source/blender/makesrna/intern/rna_brush.c

Modified: trunk/blender/source/blender/blenkernel/BKE_paint.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_paint.h	2010-07-26 02:31:45 UTC (rev 30732)
+++ trunk/blender/source/blender/blenkernel/BKE_paint.h	2010-07-26 02:35:43 UTC (rev 30733)
@@ -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: trunk/blender/source/blender/blenkernel/intern/icons.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/icons.c	2010-07-26 02:31:45 UTC (rev 30732)
+++ trunk/blender/source/blender/blenkernel/intern/icons.c	2010-07-26 02:35:43 UTC (rev 30733)
@@ -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: trunk/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/paint.c	2010-07-26 02:31:45 UTC (rev 30732)
+++ trunk/blender/source/blender/blenkernel/intern/paint.c	2010-07-26 02:35:43 UTC (rev 30733)
@@ -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: trunk/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_access.h	2010-07-26 02:31:45 UTC (rev 30732)
+++ trunk/blender/source/blender/makesrna/RNA_access.h	2010-07-26 02:35:43 UTC (rev 30733)
@@ -822,9 +822,10 @@
 void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id);
 int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname);
 
-/* lower level functions that donr use a PointerRNA */
-int	RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value);
-int	RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier);
+/* lower level functions that don't use a PointerRNA */
+int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value);
+int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier);
+int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon);
 
 void RNA_string_get(PointerRNA *ptr, const char *name, char *value);
 char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen);

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2010-07-26 02:31:45 UTC (rev 30732)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2010-07-26 02:35:43 UTC (rev 30733)
@@ -3424,6 +3424,18 @@
 	return 0;
 }
 
+int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon)
+{
+	for( ; item->identifier; item++) {
+		if(item->value==value) {
+			*icon = item->icon;
+			return 1;
+		}
+	}
+	
+	return 0;
+}
+
 void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
 {
 	PropertyRNA *prop= RNA_struct_find_property(ptr, name);

Modified: trunk/blender/source/blender/makesrna/intern/rna_brush.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_brush.c	2010-07-26 02:31:45 UTC (rev 30732)
+++ trunk/blender/source/blender/makesrna/intern/rna_brush.c	2010-07-26 02:35:43 UTC (rev 30733)
@@ -45,6 +45,7 @@
 #include "BKE_texture.h"
 #include "BKE_brush.h"
 #include "BKE_icons.h"
+#include "BKE_paint.h"
 
 #include "WM_api.h"
 
@@ -55,43 +56,22 @@
 	//WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, NULL);
 }
 
-static int rna_Brush_is_sculpt_brush(Brush *me, bContext *C)
+static int rna_Brush_is_sculpt_brush(Brush *br, bContext *C)
 {
 	Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
-	int i;
-
-	for (i= 0; i < sd->paint.brush_count; i++) {
-		if (strcmp(me->id.name+2, sd->paint.brushes[i]->id.name+2) == 0) 
-			return 1;
-	}
-
-	return 0;
+	return paint_has_brush(&sd->paint, br);
 }
 
-static int rna_Brush_is_vpaint_brush(Brush *me, bContext *C)
+static int rna_Brush_is_vpaint_brush(Brush *br, bContext *C)
 {
 	VPaint *vp = CTX_data_tool_settings(C)->vpaint;
-	int i;
-
-	for (i= 0; i < vp->paint.brush_count; i++) {
-		if (strcmp(me->id.name+2, vp->paint.brushes[i]->id.name+2) == 0) 
-			return 1;
-	}
-
-	return 0;
+	return paint_has_brush(&vp->paint, br);
 }
 
-static int rna_Brush_is_wpaint_brush(Brush *me, bContext *C)
+static int rna_Brush_is_wpaint_brush(Brush *br, bContext *C)
 {
 	VPaint *vp = CTX_data_tool_settings(C)->wpaint;
-	int i;
-
-	for (i= 0; i < vp->paint.brush_count; i++) {
-		if (strcmp(me->id.name+2, vp->paint.brushes[i]->id.name+2) == 0) 
-			return 1;
-	}
-
-	return 0;
+	return paint_has_brush(&vp->paint, br);
 }
 
 static int rna_Brush_is_imapaint_brush(Brush *me, bContext *C)





More information about the Bf-blender-cvs mailing list