Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-03-02 07:51:43 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-03-02 07:51:43 +0300
commite2304a4dbbf320d268581536cdc9c3e8f66cc7c3 (patch)
treef84c7b417e42580fbc69b7e8e4c36695844fb0f8 /source/blender/python/intern/bpy_rna.h
parent21067886aaa9607f0ab345c8f52dbdb9c2818033 (diff)
move anim functions out of bpy_rna.c, its getting too big.
Diffstat (limited to 'source/blender/python/intern/bpy_rna.h')
-rw-r--r--source/blender/python/intern/bpy_rna.h40
1 files changed, 26 insertions, 14 deletions
diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h
index be877344c48..77f1fa3b336 100644
--- a/source/blender/python/intern/bpy_rna.h
+++ b/source/blender/python/intern/bpy_rna.h
@@ -29,21 +29,8 @@
#ifndef BPY_RNA_H
#define BPY_RNA_H
-#include "RNA_access.h"
-#include "RNA_types.h"
-#include "BKE_idprop.h"
-
-extern PyTypeObject pyrna_struct_meta_idprop_Type;
-extern PyTypeObject pyrna_struct_Type;
-extern PyTypeObject pyrna_prop_Type;
-extern PyTypeObject pyrna_prop_array_Type;
-extern PyTypeObject pyrna_prop_collection_Type;
-
-#define BPy_StructRNA_Check(v) (PyObject_TypeCheck(v, &pyrna_struct_Type))
-#define BPy_StructRNA_CheckExact(v) (Py_TYPE(v) == &pyrna_struct_Type)
-#define BPy_PropertyRNA_Check(v) (PyObject_TypeCheck(v, &pyrna_prop_Type))
-#define BPy_PropertyRNA_CheckExact(v) (Py_TYPE(v) == &pyrna_prop_Type)
+/* --- bpy build options --- */
/* play it safe and keep optional for now, need to test further now this affects looping on 10000's of verts for eg. */
// #define USE_WEAKREFS
@@ -62,6 +49,28 @@ extern PyTypeObject pyrna_prop_collection_Type;
#if defined(USE_PYRNA_INVALIDATE_GC) && defined(USE_PYRNA_INVALIDATE_WEAKREF)
#error "Only 1 reference check method at a time!"
#endif
+/* --- end bpy build options --- */
+
+
+extern PyTypeObject pyrna_struct_meta_idprop_Type;
+extern PyTypeObject pyrna_struct_Type;
+extern PyTypeObject pyrna_prop_Type;
+extern PyTypeObject pyrna_prop_array_Type;
+extern PyTypeObject pyrna_prop_collection_Type;
+
+#define BPy_StructRNA_Check(v) (PyObject_TypeCheck(v, &pyrna_struct_Type))
+#define BPy_StructRNA_CheckExact(v) (Py_TYPE(v) == &pyrna_struct_Type)
+#define BPy_PropertyRNA_Check(v) (PyObject_TypeCheck(v, &pyrna_prop_Type))
+#define BPy_PropertyRNA_CheckExact(v) (Py_TYPE(v) == &pyrna_prop_Type)
+
+#define PYRNA_STRUCT_CHECK_OBJ(obj) if(pyrna_struct_validity_check(obj) == -1) { return NULL; }
+#define PYRNA_STRUCT_CHECK_INT(obj) if(pyrna_struct_validity_check(obj) == -1) { return -1; }
+
+#define PYRNA_PROP_CHECK_OBJ(obj) if(pyrna_prop_validity_check(obj) == -1) { return NULL; }
+#define PYRNA_PROP_CHECK_INT(obj) if(pyrna_prop_validity_check(obj) == -1) { return -1; }
+
+#define PYRNA_STRUCT_IS_VALID(pysrna) (((BPy_StructRNA *)(pysrna))->ptr.type != NULL)
+#define PYRNA_PROP_IS_VALID(pysrna) (((BPy_PropertyRNA *)(pysrna))->ptr.type != NULL)
typedef struct {
PyObject_HEAD /* required python macro */
@@ -141,6 +150,9 @@ int pyrna_array_contains_py(PointerRNA *ptr, PropertyRNA *prop, PyObject *value)
int pyrna_write_check(void);
+int pyrna_struct_validity_check(BPy_StructRNA *pysrna);
+int pyrna_prop_validity_check(BPy_PropertyRNA *self);
+
void BPY_modules_update(struct bContext *C); //XXX temp solution
/* bpy.utils.(un)register_class */