[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17632] branches/blender2.5/blender/source /blender/makesrna/intern:

Brecht Van Lommel brecht at blender.org
Sun Nov 30 01:57:35 CET 2008


Revision: 17632
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17632
Author:   blendix
Date:     2008-11-30 01:57:32 +0100 (Sun, 30 Nov 2008)

Log Message:
-----------

RNA
* Added more DNA_color_types.h, starting from patch by Sebastian Skej?\195?\184.
  What's missing is write access to some things like point location,
  hard to retrieve the CurveMapping for proper update still..
* Added all datablocks as ID pointer in Main already, now only have to
  change the type from ID to the specific type. Also added filename
  to Main, which is basically the only non-internal property.
* Fixed setting shadow buffers size in lamps, also ensured it to be a
  multiple of 16.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_color.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_lamp.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_main.c

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c	2008-11-29 23:27:07 UTC (rev 17631)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_ID.c	2008-11-30 00:57:32 UTC (rev 17632)
@@ -177,7 +177,7 @@
 
 	srna= RNA_def_struct(brna, "Library", "ID", "Library");
 
-	prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_NONE);
+	prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH);
 	RNA_def_property_string_sdna(prop, NULL, "name");
 	RNA_def_property_flag(prop, PROP_NOT_EDITABLE);
 	RNA_def_property_ui_text(prop, "Filename", "Path to the library .blend file.");

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_color.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_color.c	2008-11-29 23:27:07 UTC (rev 17631)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_color.c	2008-11-30 00:57:32 UTC (rev 17632)
@@ -32,18 +32,202 @@
 
 #ifdef RNA_RUNTIME
 
+#include "BKE_colortools.h"
+
+static int rna_CurveMapping_curves_length(PointerRNA *ptr)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+	int len;
+
+	for(len=0; len<CM_TOT; len++)
+		if(!cumap->cm[len].curve)
+			break;
+	
+	return len;
+}
+
+static void rna_CurveMapping_curves_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+
+	rna_iterator_array_begin(iter, cumap->cm, sizeof(CurveMap), rna_CurveMapping_curves_length(ptr), NULL);
+}
+
+static void rna_CurveMapping_use_clipping_set(PointerRNA *ptr, int value)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+
+	if(value) cumap->flag |= CUMA_DO_CLIP;
+	else cumap->flag &= ~CUMA_DO_CLIP;
+
+	curvemapping_changed(cumap, 0);
+}
+
+static void rna_CurveMapping_black_level_set(PointerRNA *ptr, int index, float value)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+	cumap->black[index]= value;
+	curvemapping_set_black_white(cumap, NULL, NULL);
+}
+
+static void rna_CurveMapping_white_level_set(PointerRNA *ptr, int index, float value)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+	cumap->white[index]= value;
+	curvemapping_set_black_white(cumap, NULL, NULL);
+}
+
+static void rna_CurveMapping_clipminx_range(PointerRNA *ptr, float *min, float *max)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+
+	*min= -100.0f;
+	*max= cumap->clipr.xmax;
+}
+
+static void rna_CurveMapping_clipminy_range(PointerRNA *ptr, float *min, float *max)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+
+	*min= -100.0f;
+	*max= cumap->clipr.ymax;
+}
+
+static void rna_CurveMapping_clipmaxx_range(PointerRNA *ptr, float *min, float *max)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+
+	*min= cumap->clipr.xmin;
+	*max= 100.0f;
+}
+
+static void rna_CurveMapping_clipmaxy_range(PointerRNA *ptr, float *min, float *max)
+{
+	CurveMapping *cumap= (CurveMapping*)ptr->data;
+
+	*min= cumap->clipr.ymin;
+	*max= 100.0f;
+}
+
 #else
 
-void RNA_def_color(BlenderRNA *brna)
+static void rna_def_curvemappoint(BlenderRNA *brna)
 {
 	StructRNA *srna;
+    PropertyRNA *prop;
+	static EnumPropertyItem prop_handle_type_items[] = {
+        {0, "AUTO", "Auto Handle", ""},
+        {CUMA_VECTOR, "VECTOR", "Vector Handle", ""},
+		{0, NULL, NULL, NULL}
+    };
 
 	srna= RNA_def_struct(brna, "CurveMapPoint", NULL, "CurveMapPoint");
 
+	/* not editable for now, need to have CurveMapping to do curvemapping_changed */
+
+    prop= RNA_def_property(srna, "location", PROP_FLOAT, PROP_VECTOR);
+	RNA_def_property_float_sdna(prop, NULL, "x");
+	RNA_def_property_array(prop, 2);
+	RNA_def_property_flag(prop, PROP_NOT_EDITABLE);
+    RNA_def_property_ui_text(prop, "Location", "");
+
+	prop= RNA_def_property(srna, "handle_type", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "flag", PROP_DEF_ENUM_BITFLAGS);
+	RNA_def_property_enum_items(prop, prop_handle_type_items);
+	RNA_def_property_flag(prop, PROP_NOT_EDITABLE);
+    RNA_def_property_ui_text(prop, "Handle Type", "");
+
+    prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", CUMA_SELECT);
+    RNA_def_property_ui_text(prop, "Selected", "");
+}
+
+static void rna_def_curvemap(BlenderRNA *brna)
+{
+	StructRNA *srna;
+    PropertyRNA *prop;
+	static EnumPropertyItem prop_extend_items[] = {
+        {0, "HORIZONTAL", "Horizontal", ""},
+        {CUMA_EXTEND_EXTRAPOLATE, "EXTRAPOLATED", "Extrapolated", ""},
+		{0, NULL, NULL, NULL}
+    };
+
 	srna= RNA_def_struct(brna, "CurveMap", NULL, "CurveMap");
 
+	/* not editable for now, need to have CurveMapping to do curvemapping_changed */
+
+	prop= RNA_def_property(srna, "extend", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "flag", CUMA_EXTEND_EXTRAPOLATE);
+	RNA_def_property_enum_items(prop, prop_extend_items);
+	RNA_def_property_flag(prop, PROP_NOT_EDITABLE);
+    RNA_def_property_ui_text(prop, "Extend", "");
+
+    prop= RNA_def_property(srna, "points", PROP_COLLECTION, PROP_NONE);
+	RNA_def_property_collection_sdna(prop, NULL, "curve", "totpoint");
+    RNA_def_property_struct_type(prop, "CurveMapPoint");
+    RNA_def_property_ui_text(prop, "Points", "");
+}
+
+static void rna_def_curvemapping(BlenderRNA *brna)
+{
+	StructRNA *srna;
+    PropertyRNA *prop;
+
 	srna= RNA_def_struct(brna, "CurveMapping", NULL, "CurveMapping");
+
+    prop= RNA_def_property(srna, "use_clipping", PROP_BOOLEAN, PROP_NONE);
+    RNA_def_property_boolean_sdna(prop, NULL, "flag", CUMA_DO_CLIP);
+    RNA_def_property_ui_text(prop, "Use Clipping", "");
+	RNA_def_property_boolean_funcs(prop, NULL, "rna_CurveMapping_use_clipping_set");
+
+    prop= RNA_def_property(srna, "clip_min_x", PROP_FLOAT, PROP_NONE);
+    RNA_def_property_float_sdna(prop, NULL, "clipr.xmin");
+	RNA_def_property_range(prop, -100.0f, 100.0f);
+    RNA_def_property_ui_text(prop, "Clip Min X", "");
+	RNA_def_property_float_funcs(prop, NULL, NULL, "rna_CurveMapping_clipminx_range");
+
+    prop= RNA_def_property(srna, "clip_min_y", PROP_FLOAT, PROP_NONE);
+    RNA_def_property_float_sdna(prop, NULL, "clipr.ymin");
+	RNA_def_property_range(prop, -100.0f, 100.0f);
+    RNA_def_property_ui_text(prop, "Clip Min Y", "");
+	RNA_def_property_float_funcs(prop, NULL, NULL, "rna_CurveMapping_clipminy_range");
+
+    prop= RNA_def_property(srna, "clip_max_x", PROP_FLOAT, PROP_NONE);
+    RNA_def_property_float_sdna(prop, NULL, "clipr.xmax");
+	RNA_def_property_range(prop, -100.0f, 100.0f);
+    RNA_def_property_ui_text(prop, "Clip Max X", "");
+	RNA_def_property_float_funcs(prop, NULL, NULL, "rna_CurveMapping_clipmaxx_range");
+
+    prop= RNA_def_property(srna, "clip_max_y", PROP_FLOAT, PROP_NONE);
+    RNA_def_property_float_sdna(prop, NULL, "clipr.ymax");
+	RNA_def_property_range(prop, -100.0f, 100.0f);
+    RNA_def_property_ui_text(prop, "Clip Max Y", "");
+	RNA_def_property_float_funcs(prop, NULL, NULL, "rna_CurveMapping_clipmaxy_range");
+
+	prop= RNA_def_property(srna, "curves", PROP_COLLECTION, PROP_NONE);
+	RNA_def_property_collection_funcs(prop, "rna_CurveMapping_curves_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_get", 0, "rna_CurveMapping_curves_length", 0, 0);
+	RNA_def_property_struct_type(prop, "CurveMap");
+	RNA_def_property_ui_text(prop, "Curves", "");
+
+    prop= RNA_def_property(srna, "black_level", PROP_FLOAT, PROP_COLOR);
+	RNA_def_property_float_sdna(prop, NULL, "black");
+	RNA_def_property_ui_range(prop, 0.0f, 1.0f, 10, 3);
+	RNA_def_property_ui_text(prop, "Black Level", "");
+	RNA_def_property_float_funcs(prop, NULL, "rna_CurveMapping_black_level_set", NULL);
+
+    prop= RNA_def_property(srna, "white_level", PROP_FLOAT, PROP_COLOR);
+	RNA_def_property_float_sdna(prop, NULL, "white");
+	RNA_def_property_ui_range(prop, 0.0f, 1.0f, 10, 3);
+	RNA_def_property_ui_text(prop, "White Level", "");
+	RNA_def_property_float_funcs(prop, NULL, "rna_CurveMapping_white_level_set", NULL);
 }
 
+void RNA_def_color(BlenderRNA *brna)
+{
+	rna_def_curvemappoint(brna);
+	rna_def_curvemap(brna);
+	rna_def_curvemapping(brna);
+}
+
 #endif
 

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_lamp.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_lamp.c	2008-11-29 23:27:07 UTC (rev 17631)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_lamp.c	2008-11-30 00:57:32 UTC (rev 17632)
@@ -33,6 +33,16 @@
 
 #ifdef RNA_RUNTIME
 
+static void rna_Lamp_buffer_size_set(PointerRNA *ptr, int value)
+{
+	Lamp *la= (Lamp*)ptr->data;
+
+	CLAMP(value, 512, 10240);
+	la->bufsize= value;
+	la->bufsize &= (~15); /* round to multiple of 16 */
+}
+
+
 #else
 
 void RNA_def_lamp(BlenderRNA *brna)
@@ -100,9 +110,9 @@
 		{0, NULL, NULL, NULL}};
 	static EnumPropertyItem prop_fallofftype_items[] = {
 		{LA_FALLOFF_CONSTANT, "CONSTANT", "Constant", ""},
-		{LA_FALLOFF_INVLINEAR, "INVLINEAR", "Invert Linear", ""},
-		{LA_FALLOFF_INVSQUARE, "INVSQUARE", "Invert Square", ""},
-		{LA_FALLOFF_CURVE, "CURVE", "Custum Curve", ""},
+		{LA_FALLOFF_INVLINEAR, "INVLINEAR", "Inverse Linear", ""},
+		{LA_FALLOFF_INVSQUARE, "INVSQUARE", "Inverse Square", ""},
+		{LA_FALLOFF_CURVE, "CURVE", "Custom Curve", ""},
 		{LA_FALLOFF_SLIDERS, "SLIDERS", "Lin/Quad Weighted", ""},
 		{0, NULL, NULL, NULL}};
 
@@ -145,6 +155,7 @@
 	RNA_def_property_ui_text(prop, "Sample Buffers", "Number of Buffers to sample.");
 
 	prop= RNA_def_property(srna, "falloff_type", PROP_ENUM, PROP_NONE);
+	RNA_def_property_flag(prop, PROP_NOT_EDITABLE); /* needs to be able to create curve mapping */
 	RNA_def_property_enum_items(prop, prop_fallofftype_items);
 	RNA_def_property_ui_text(prop, "Falloff Type", "Intensity Decay with distance.");
 
@@ -230,60 +241,61 @@
 	prop= RNA_def_property(srna, "buffer_size", PROP_INT, PROP_NONE);
 	RNA_def_property_int_sdna(prop, NULL, "bufsize");
 	RNA_def_property_range(prop, 512, 10240);
-	RNA_def_property_ui_text(prop, "Buffer Size", "The Size in Bytes of the Shadow Buffer");
+	RNA_def_property_ui_text(prop, "Buffer Size", "Sets the size of the shadow buffer to nearest multiple of 16");
+	RNA_def_property_int_funcs(prop, NULL, "rna_Lamp_buffer_size_set", NULL);
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list