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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-06-18 23:48:55 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-06-18 23:48:55 +0400
commit4cd24cf05809557e0d620dccf1f19a570784f6fe (patch)
tree6ffd5df6ab510d4fa6766d267bef2d3099679305 /source/blender/python
parent89d2559e6dbde26acdd45e3fe9d6eff2c62d98c0 (diff)
RNA
Merging changes made by Arystanbek in the soc-2009-kazanbas branch, plus some things modified and added by me. * The API files now all in the makesrna module, convention is to call them e.g. rna_mesh_api.c for rna_mesh.c. Note for visual studio build maintainers, the rna_*_api.c files are compiled as part of "makesrna", but do not have rna_*_gen.c generated as part of the library. SCons/cmake/make were updated. * Added function flags FUNC_USE_CONTEXT and FUNC_USE_REPORTS, to allow RNA functions to get context and error reporting parameters optionally. Renamed FUNC_TYPESTATIC to FUNC_NO_SELF. * RNA collections now have a pointer to add/remove FunctionRNA's, this isn't actually used anywhere yet, purpose is to make an alias main.meshes.add() for main.add_mesh() in python. * Fixes to make autogenerating property set/get for multidimensional arrays work, though a 4x4 matrix will be exposed as a length 16 one dimensional RNA array. * Functions and properties added: * Main.add_mesh() * Main.remove_mesh() * Object.matrix * Object.create_render_mesh() * WindowManager.add_fileselect()
Diffstat (limited to 'source/blender/python')
-rw-r--r--source/blender/python/CMakeLists.txt4
-rw-r--r--source/blender/python/intern/bpy_rna.c16
2 files changed, 16 insertions, 4 deletions
diff --git a/source/blender/python/CMakeLists.txt b/source/blender/python/CMakeLists.txt
index d15970e1df4..7700e6bc2aa 100644
--- a/source/blender/python/CMakeLists.txt
+++ b/source/blender/python/CMakeLists.txt
@@ -24,10 +24,12 @@
# ***** END GPL LICENSE BLOCK *****
FILE(GLOB SRC intern/*.c)
+FILE(GLOB GENSRC generic/*.c)
SET(INC
. ../../../intern/guardedalloc ../blenlib ../makesdna ../makesrna
../blenkernel ../editors/include ../windowmanager ${PYTHON_INC}
+ ../../../extern/glew/include
)
IF(WITH_OPENEXR)
@@ -47,3 +49,5 @@ ENDIF(WITH_FFMPEG)
ADD_DEFINITIONS(-DWITH_CCGSUBSURF)
BLENDERLIB(bf_python "${SRC}" "${INC}")
+BLENDERLIB(bf_gen_python "${GENSRC}" "${INC}")
+
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index 4cdc78297d4..a0fb4865548 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -1310,11 +1310,19 @@ static PyObject * pyrna_func_call(PyObject * self, PyObject *args, PyObject *kw)
ret= NULL;
if (err==0) {
/* call function */
- RNA_function_call(self_ptr, self_func, parms);
+ ReportList reports;
+ bContext *C= BPy_GetContext();
+
+ BKE_reports_init(&reports, RPT_STORE);
+ RNA_function_call(C, &reports, self_ptr, self_func, parms);
+
+ err= (BPy_reports_to_error(&reports))? -1: 0;
+ BKE_reports_clear(&reports);
/* return value */
- if(pret)
- ret= pyrna_param_to_py(&funcptr, pret, retdata);
+ if(err==0)
+ if(pret)
+ ret= pyrna_param_to_py(&funcptr, pret, retdata);
}
/* cleanup */
@@ -2121,7 +2129,7 @@ PyObject *pyrna_basetype_register(PyObject *self, PyObject *args)
C= BPy_GetContext();
/* call the register callback */
- BKE_reports_init(&reports, RPT_PRINT);
+ BKE_reports_init(&reports, RPT_STORE);
srna= reg(C, &reports, py_class, bpy_class_validate, bpy_class_call, bpy_class_free);
if(!srna) {