[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