[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