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

Brecht Van Lommel brecht at blender.org
Fri Nov 14 15:34:21 CET 2008


Revision: 17456
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17456
Author:   blendix
Date:     2008-11-14 15:34:19 +0100 (Fri, 14 Nov 2008)

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

RNA
* Added accessor functions for structs and properties instead of
  direct access, in preparation of wrapping ID properties.
* Added more error prints for wrong defines.
* Wrap RNA data structures with RNA.
* Disable dependency code for now to avoid confusion.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_define.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/makesrna.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_define.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_dependency.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_internal.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_object.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_rna.c

Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_access.h	2008-11-14 11:15:53 UTC (rev 17455)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_access.h	2008-11-14 14:34:19 UTC (rev 17456)
@@ -25,12 +25,9 @@
 #ifndef RNA_ACCESS
 #define RNA_ACCESS
 
+#include "RNA_types.h"
+
 struct bContext;
-struct BlenderRNA;
-struct StructRNA;
-struct PropertyRNA;
-struct PointerRNA;
-struct CollectionPropertyIterator;
 struct Main;
 
 /* Pointer
@@ -38,54 +35,85 @@
  * Currently only an RNA pointer to Main can be obtained, this
  * should  be extended to allow making other pointers as well. */
 
-void RNA_pointer_main_get(struct Main *main, struct PointerRNA *r_ptr);
+void RNA_pointer_main_get(struct Main *main, PointerRNA *r_ptr);
 
-/* Property
+/* Structs */
+
+const char *RNA_struct_cname(PointerRNA *ptr);
+const char *RNA_struct_ui_name(PointerRNA *ptr);
+
+PropertyRNA *RNA_struct_name_property(PointerRNA *ptr);
+PropertyRNA *RNA_struct_iterator_property(PointerRNA *ptr);
+
+/* Properties
  *
  * Access to struct properties. All this works with RNA pointers rather than
  * direct pointers to the data. */
 
-int RNA_property_editable(struct PropertyRNA *prop, struct PointerRNA *ptr);
-int RNA_property_evaluated(struct PropertyRNA *prop, struct PointerRNA *ptr);
+/* Property Information */
 
-void RNA_property_notify(struct PropertyRNA *prop, struct bContext *C, struct PointerRNA *ptr);
+const char *RNA_property_cname(PropertyRNA *prop, PointerRNA *ptr);
+PropertyType RNA_property_type(PropertyRNA *prop, PointerRNA *ptr);
+PropertySubType RNA_property_subtype(PropertyRNA *prop, PointerRNA *ptr);
 
-int RNA_property_boolean_get(struct PropertyRNA *prop, struct PointerRNA *ptr);
-void RNA_property_boolean_set(struct PropertyRNA *prop, struct PointerRNA *ptr, int value);
-int RNA_property_boolean_get_array(struct PropertyRNA *prop, struct PointerRNA *ptr, int index);
-void RNA_property_boolean_set_array(struct PropertyRNA *prop, struct PointerRNA *ptr, int index, int value);
+int RNA_property_array_length(PropertyRNA *prop, PointerRNA *ptr);
 
-int RNA_property_int_get(struct PropertyRNA *prop, struct PointerRNA *ptr);
-void RNA_property_int_set(struct PropertyRNA *prop, struct PointerRNA *ptr, int value);
-int RNA_property_int_get_array(struct PropertyRNA *prop, struct PointerRNA *ptr, int index);
-void RNA_property_int_set_array(struct PropertyRNA *prop, struct PointerRNA *ptr, int index, int value);
+void RNA_property_int_range(PropertyRNA *prop, PointerRNA *ptr, int *hardmin, int *hardmax);
+void RNA_property_int_ui_range(PropertyRNA *prop, PointerRNA *ptr, int *softmin, int *softmax, int *step);
 
-float RNA_property_float_get(struct PropertyRNA *prop, struct PointerRNA *ptr);
-void RNA_property_float_set(struct PropertyRNA *prop, struct PointerRNA *ptr, float value);
-float RNA_property_float_get_array(struct PropertyRNA *prop, struct PointerRNA *ptr, int index);
-void RNA_property_float_set_array(struct PropertyRNA *prop, struct PointerRNA *ptr, int index, float value);
+void RNA_property_float_range(PropertyRNA *prop, PointerRNA *ptr, float *hardmin, float *hardmax);
+void RNA_property_float_ui_range(PropertyRNA *prop, PointerRNA *ptr, float *softmin, float *softmax, float *step, float *precision);
 
-void RNA_property_string_get(struct PropertyRNA *prop, struct PointerRNA *ptr, char *value);
-char *RNA_property_string_get_alloc(struct PropertyRNA *prop, struct PointerRNA *ptr, char *fixedbuf, int fixedlen);
-int RNA_property_string_length(struct PropertyRNA *prop, struct PointerRNA *ptr);
-void RNA_property_string_set(struct PropertyRNA *prop, struct PointerRNA *ptr, const char *value);
+int RNA_property_string_maxlength(PropertyRNA *prop, PointerRNA *ptr);
 
-int RNA_property_enum_get(struct PropertyRNA *prop, struct PointerRNA *ptr);
-void RNA_property_enum_set(struct PropertyRNA *prop, struct PointerRNA *ptr, int value);
+void RNA_property_enum_items(PropertyRNA *prop, PointerRNA *ptr, const PropertyEnumItem **item, int *totitem);
 
-void RNA_property_pointer_get(struct PropertyRNA *prop, struct PointerRNA *ptr, struct PointerRNA *r_ptr);
-void RNA_property_pointer_set(struct PropertyRNA *prop, struct PointerRNA *ptr, struct PointerRNA *ptr_value);
-struct StructRNA *RNA_property_pointer_type(struct PropertyRNA *prop, struct PointerRNA *ptr);
+const char *RNA_property_ui_name(PropertyRNA *prop, PointerRNA *ptr);
+const char *RNA_property_ui_description(PropertyRNA *prop, PointerRNA *ptr);
 
-void RNA_property_collection_begin(struct PropertyRNA *prop, struct CollectionPropertyIterator *iter, struct PointerRNA *ptr);
-void RNA_property_collection_next(struct PropertyRNA *prop, struct CollectionPropertyIterator *iter);
-void RNA_property_collection_end(struct PropertyRNA *prop, struct CollectionPropertyIterator *iter);
-void RNA_property_collection_get(struct PropertyRNA *prop, struct CollectionPropertyIterator *iter, struct PointerRNA *r_ptr);
-struct StructRNA *RNA_property_collection_type(struct PropertyRNA *prop, struct CollectionPropertyIterator *iter);
-int RNA_property_collection_length(struct PropertyRNA *prop, struct PointerRNA *ptr);
-int RNA_property_collection_lookup_int(struct PropertyRNA *prop, struct PointerRNA *ptr, int key, struct PointerRNA *r_ptr);
-int RNA_property_collection_lookup_string(struct PropertyRNA *prop, struct PointerRNA *ptr, const char *key, struct PointerRNA *r_ptr);
+int RNA_property_editable(PropertyRNA *prop, PointerRNA *ptr);
+int RNA_property_evaluated(PropertyRNA *prop, PointerRNA *ptr);
 
+void RNA_property_notify(PropertyRNA *prop, struct bContext *C, PointerRNA *ptr);
+
+/* Property Data */
+
+int RNA_property_boolean_get(PropertyRNA *prop, PointerRNA *ptr);
+void RNA_property_boolean_set(PropertyRNA *prop, PointerRNA *ptr, int value);
+int RNA_property_boolean_get_array(PropertyRNA *prop, PointerRNA *ptr, int index);
+void RNA_property_boolean_set_array(PropertyRNA *prop, PointerRNA *ptr, int index, int value);
+
+int RNA_property_int_get(PropertyRNA *prop, PointerRNA *ptr);
+void RNA_property_int_set(PropertyRNA *prop, PointerRNA *ptr, int value);
+int RNA_property_int_get_array(PropertyRNA *prop, PointerRNA *ptr, int index);
+void RNA_property_int_set_array(PropertyRNA *prop, PointerRNA *ptr, int index, int value);
+
+float RNA_property_float_get(PropertyRNA *prop, PointerRNA *ptr);
+void RNA_property_float_set(PropertyRNA *prop, PointerRNA *ptr, float value);
+float RNA_property_float_get_array(PropertyRNA *prop, PointerRNA *ptr, int index);
+void RNA_property_float_set_array(PropertyRNA *prop, PointerRNA *ptr, int index, float value);
+
+void RNA_property_string_get(PropertyRNA *prop, PointerRNA *ptr, char *value);
+char *RNA_property_string_get_alloc(PropertyRNA *prop, PointerRNA *ptr, char *fixedbuf, int fixedlen);
+int RNA_property_string_length(PropertyRNA *prop, PointerRNA *ptr);
+void RNA_property_string_set(PropertyRNA *prop, PointerRNA *ptr, const char *value);
+
+int RNA_property_enum_get(PropertyRNA *prop, PointerRNA *ptr);
+void RNA_property_enum_set(PropertyRNA *prop, PointerRNA *ptr, int value);
+
+void RNA_property_pointer_get(PropertyRNA *prop, PointerRNA *ptr, PointerRNA *r_ptr);
+void RNA_property_pointer_set(PropertyRNA *prop, PointerRNA *ptr, PointerRNA *ptr_value);
+StructRNA *RNA_property_pointer_type(PropertyRNA *prop, PointerRNA *ptr);
+
+void RNA_property_collection_begin(PropertyRNA *prop, CollectionPropertyIterator *iter, PointerRNA *ptr);
+void RNA_property_collection_next(PropertyRNA *prop, CollectionPropertyIterator *iter);
+void RNA_property_collection_end(PropertyRNA *prop, CollectionPropertyIterator *iter);
+void RNA_property_collection_get(PropertyRNA *prop, CollectionPropertyIterator *iter, PointerRNA *r_ptr);
+StructRNA *RNA_property_collection_type(PropertyRNA *prop, CollectionPropertyIterator *iter);
+int RNA_property_collection_length(PropertyRNA *prop, PointerRNA *ptr);
+int RNA_property_collection_lookup_int(PropertyRNA *prop, PointerRNA *ptr, int key, PointerRNA *r_ptr);
+int RNA_property_collection_lookup_string(PropertyRNA *prop, PointerRNA *ptr, const char *key, PointerRNA *r_ptr);
+
 /* Path
  *
  * Experimental method to refer to structs and properties with a string,
@@ -95,12 +123,13 @@
  * particular pointers, which is useful in a number of applications, like
  * UI code or Actions, though efficiency is a concern. */
 
-char *RNA_path_append(const char *path, struct PropertyRNA *prop, int intkey, const char *strkey);
+char *RNA_path_append(const char *path, PropertyRNA *prop, int intkey, const char *strkey);
 char *RNA_path_back(const char *path);
 
-int RNA_path_resolve(struct PointerRNA *ptr, const char *path,
-	struct PointerRNA *r_ptr, struct PropertyRNA **r_prop);
+int RNA_path_resolve(PointerRNA *ptr, const char *path,
+	PointerRNA *r_ptr, PropertyRNA **r_prop);
 
+#if 0
 /* Dependency
  *
  * Experimental code that will generate callbacks for each dependency
@@ -108,10 +137,11 @@
  * and evaluation code that needs to know such dependencies for correct
  * redraws and re-evaluations. */
 
-typedef void (*PropDependencyCallback)(void *udata, struct PointerRNA *from, struct PointerRNA *to);
-void RNA_test_dependencies_cb(void *udata, struct PointerRNA *from, struct PointerRNA *to);
+typedef void (*PropDependencyCallback)(void *udata, PointerRNA *from, PointerRNA *to);
+void RNA_test_dependencies_cb(void *udata, PointerRNA *from, PointerRNA *to);
 
-void RNA_generate_dependencies(struct PointerRNA *mainptr, void *udata, PropDependencyCallback cb);
+void RNA_generate_dependencies(PointerRNA *mainptr, void *udata, PropDependencyCallback cb);
+#endif
 
 #endif /* RNA_ACCESS */
 

Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_define.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_define.h	2008-11-14 11:15:53 UTC (rev 17455)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_define.h	2008-11-14 14:34:19 UTC (rev 17456)
@@ -33,65 +33,61 @@
  * to be figured out still. */
 
 #include "DNA_listBase.h"
+#include "RNA_types.h"
 
-struct BlenderRNA;
-struct StructRNA;
-struct PropertyRNA;
-struct PropertyEnumItem;
-
 /* Blender RNA */
 
-struct BlenderRNA *RNA_create(void);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list