From b429a65ed6f1d53e74bd6cc913a32092a1d191a9 Mon Sep 17 00:00:00 2001 From: Chingiz Dyussenov Date: Tue, 9 Jun 2009 14:53:19 +0000 Subject: Added two RNA struct functions - merely wrappers around the C api. - add_mesh to Main - calls C add_mesh and returns a new mesh - copy to Mesh - calls C copy_mesh and returns a new copy Not sure about function placement and naming though. Put both functions in editmesh.c, mesh editor module. Added prototypes to rna_internal.h. Prefixed both with "RNA_api_". Wanted to code Mesh.copy so that it copies Mesh data from another object instead of creating a new Mesh, but this needs CustomData manipulations which I should study later. Maybe we need a separate file for API functions? e.g. mesh_api.c? --- source/blender/makesrna/intern/rna_internal.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 9071efe71f7..ee08465f544 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -189,6 +189,8 @@ void rna_object_vcollayer_name_set(struct PointerRNA *ptr, const char *value, ch /* API functions */ void RNA_api_ui_layout(struct StructRNA *srna); +struct Mesh *RNA_api_add_mesh(struct Main *main, char *name); +struct Mesh *RNA_api_mesh_copy(struct Mesh *me); /* ID Properties */ -- cgit v1.2.3 From ad503a32d60459d627b74479064b0536e0a73ef2 Mon Sep 17 00:00:00 2001 From: Chingiz Dyussenov Date: Wed, 10 Jun 2009 09:56:22 +0000 Subject: - added copy_mesh_data C function which, unlike copy_mesh, copies data between two existing meshes. - API's Mesh.copy reflects copy_mesh_data. --- source/blender/makesrna/intern/rna_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index ee08465f544..d93c296ca93 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -190,7 +190,7 @@ void rna_object_vcollayer_name_set(struct PointerRNA *ptr, const char *value, ch void RNA_api_ui_layout(struct StructRNA *srna); struct Mesh *RNA_api_add_mesh(struct Main *main, char *name); -struct Mesh *RNA_api_mesh_copy(struct Mesh *me); +void RNA_api_mesh_copy(struct Mesh *me, struct Mesh *from); /* ID Properties */ -- cgit v1.2.3 From 678417b76c228d30417889aa91ad9c2b14cbe4fe Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Mon, 15 Jun 2009 13:49:02 +0000 Subject: Added copy_applied method on Mesh objects. Uses DerivedMesh funcs to get a mesh with all modifiers applied. --- source/blender/makesrna/intern/rna_internal.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index d93c296ca93..4d3b9dfa327 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -188,9 +188,15 @@ void rna_object_vcollayer_name_set(struct PointerRNA *ptr, const char *value, ch /* API functions */ +struct Main; +struct Scene; +struct Object; +struct Mesh; + void RNA_api_ui_layout(struct StructRNA *srna); struct Mesh *RNA_api_add_mesh(struct Main *main, char *name); void RNA_api_mesh_copy(struct Mesh *me, struct Mesh *from); +void RNA_api_mesh_copy_applied(struct Mesh *me, struct Scene *sce, struct Object *ob, int apply_obmat); /* ID Properties */ -- cgit v1.2.3 From 556369fe2fcb33ec4a028cc1a9c1ae1d0701e6ba Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Tue, 16 Jun 2009 08:54:38 +0000 Subject: The basic OBJ exporter working. The code is release/io/export_obj.py. To run it, switch to Scripts Window, click Scripts->Reload Scripts menu, it appears under Scripts->Export. --- source/blender/makesrna/intern/rna_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 4d3b9dfa327..aad70ec57b0 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -196,7 +196,7 @@ struct Mesh; void RNA_api_ui_layout(struct StructRNA *srna); struct Mesh *RNA_api_add_mesh(struct Main *main, char *name); void RNA_api_mesh_copy(struct Mesh *me, struct Mesh *from); -void RNA_api_mesh_copy_applied(struct Mesh *me, struct Scene *sce, struct Object *ob, int apply_obmat); +void RNA_api_mesh_copy_applied(struct Mesh *me, struct Scene *sce, struct Object *ob); /* ID Properties */ -- cgit v1.2.3 From 16d8cc633db5e1e3168d9ce9bbea62957d973024 Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Tue, 16 Jun 2009 12:42:14 +0000 Subject: WARNING: I'm starting generic RNA collection add ;) --- source/blender/makesrna/intern/rna_internal.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index aad70ec57b0..531268768d3 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -237,6 +237,9 @@ void rna_iterator_listbase_next(struct CollectionPropertyIterator *iter); void *rna_iterator_listbase_get(struct CollectionPropertyIterator *iter); void rna_iterator_listbase_end(struct CollectionPropertyIterator *iter); +/* experimental */ +void *rna_iterator_listbase_add(ListBase *lb, void *item); + typedef struct ArrayIterator { char *ptr; char *endptr; @@ -250,6 +253,9 @@ void *rna_iterator_array_get(struct CollectionPropertyIterator *iter); void *rna_iterator_array_dereference_get(struct CollectionPropertyIterator *iter); void rna_iterator_array_end(struct CollectionPropertyIterator *iter); +/* experimental */ +void *rna_iterator_array_add(void *ptr, void *data); + /* Duplicated code since we can't link in blenlib */ void rna_addtail(struct ListBase *listbase, void *vlink); -- cgit v1.2.3 From 7a54e45ccdaed5d7fa802fa20a31fda205b04294 Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Tue, 16 Jun 2009 13:57:28 +0000 Subject: Just added another param to RNA_def_property_collection_funcs and zeroed it in each call. --- source/blender/makesrna/intern/rna_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 531268768d3..467e0dabb24 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -254,7 +254,7 @@ void *rna_iterator_array_dereference_get(struct CollectionPropertyIterator *iter void rna_iterator_array_end(struct CollectionPropertyIterator *iter); /* experimental */ -void *rna_iterator_array_add(void *ptr, void *data); +void *rna_iterator_array_add(void *ptr, int itemsize, int length, void *item); /* Duplicated code since we can't link in blenlib */ -- cgit v1.2.3 From 29f5694ab8d2021bb0b9c197f95b228809b40897 Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Thu, 18 Jun 2009 09:50:34 +0000 Subject: API structuring improvements according to design guidelines by Brecht, for more info see http://lists.blender.org/pipermail/bf-taskforce25/2009-June/000954.html. Created *_api.c files in makesrna/intern. Among these only rna_api.c is compiled on preprocesssing step. It contains code declaring RNA struct functions, for example RNA_api_mesh declares all functions on Mesh. The rest *_api.c files contain functions themselves. Removed interface_api.c and moved its contents to rna_api.c. Added remove_mesh function on Main. Replaced copy and copy_mesh on Mesh with make_rendermesh which currently does the same as copy_applied did (grasping mesh-related stuff needs time). SConscript tweaking so it builds ok. --- source/blender/makesrna/intern/rna_internal.h | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 467e0dabb24..f38c3aac71d 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -188,15 +188,29 @@ void rna_object_vcollayer_name_set(struct PointerRNA *ptr, const char *value, ch /* API functions */ +void RNA_api_ui_layout(struct StructRNA *srna); +void RNA_api_mesh(struct StructRNA *srna); +void RNA_api_wm(struct StructRNA *srna); +void RNA_api_main(StructRNA *srna); + +#ifdef RNA_RUNTIME + +struct wmWindowManager; +struct bContext; +struct wmOperator; struct Main; +struct Mesh; struct Scene; struct Object; -struct Mesh; -void RNA_api_ui_layout(struct StructRNA *srna); -struct Mesh *RNA_api_add_mesh(struct Main *main, char *name); -void RNA_api_mesh_copy(struct Mesh *me, struct Mesh *from); -void RNA_api_mesh_copy_applied(struct Mesh *me, struct Scene *sce, struct Object *ob); +void RNA_api_wm_add_fileselect(struct wmWindowManager *self, struct bContext *C, struct wmOperator *op); + +struct Mesh *RNA_api_main_add_mesh(struct Main *main, char *name); +void RNA_api_main_remove_mesh(struct Main *main, struct Mesh *me); + +void RNA_api_mesh_make_rendermesh(struct Mesh *me, struct Scene *sce, struct Object *ob); + +#endif /* ID Properties */ -- cgit v1.2.3 From 617851bf21ac5da10bfd171816187e1336cd4a69 Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Thu, 2 Jul 2009 20:46:35 +0000 Subject: - added API functions: - Mesh.calc_normals - Object.add_vertex_to_group - Main.add_material - Main.add_texture - Material.add_texture - OBJ importer conversion in progress --- source/blender/makesrna/intern/rna_internal.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index f465e733d68..7bf33760011 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -193,6 +193,7 @@ void RNA_api_object(struct StructRNA *srna); void RNA_api_ui_layout(struct StructRNA *srna); void RNA_api_wm(struct StructRNA *srna); void RNA_api_scene(struct StructRNA *srna); +void RNA_api_material(StructRNA *srna); /* ID Properties */ -- cgit v1.2.3 From 7220792f187f91a2ef3eb0c930a13674b2a8a80a Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Wed, 19 Aug 2009 09:52:13 +0000 Subject: Various fixes in rna_*_api.c files to remove compiler warnings. --- source/blender/makesrna/intern/rna_internal.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index cff77fbb34b..af94f0ccc6f 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -197,13 +197,15 @@ void rna_Object_update_data(struct bContext *C, struct PointerRNA *ptr); /* API functions */ +void RNA_api_action(StructRNA *srna); +void RNA_api_image(struct StructRNA *srna); void RNA_api_main(struct StructRNA *srna); +void RNA_api_material(StructRNA *srna); void RNA_api_mesh(struct StructRNA *srna); void RNA_api_object(struct StructRNA *srna); +void RNA_api_scene(struct StructRNA *srna); void RNA_api_ui_layout(struct StructRNA *srna); void RNA_api_wm(struct StructRNA *srna); -void RNA_api_scene(struct StructRNA *srna); -void RNA_api_material(StructRNA *srna); /* ID Properties */ -- cgit v1.2.3 From cc100eadc5386a55965bacfa22afbb23c1541be5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 16 Sep 2009 06:02:56 +0000 Subject: Operator cheat sheet (from the help menu) writes all operators (including PyOperators) and their default values into a textblock. Useful for an overview and checking consistancy. eg. http://www.pasteall.org/7918/python added rna functions text.clear() and text.write(str) --- source/blender/makesrna/intern/rna_internal.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 7de80843f27..4d8ef7082b6 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -205,6 +205,7 @@ void RNA_api_main(struct StructRNA *srna); void RNA_api_mesh(struct StructRNA *srna); void RNA_api_object(struct StructRNA *srna); void RNA_api_scene(struct StructRNA *srna); +void RNA_api_text(struct StructRNA *srna); void RNA_api_ui_layout(struct StructRNA *srna); void RNA_api_wm(struct StructRNA *srna); -- cgit v1.2.3 From 15d07720e515a2e9caada6ee9900c388c5e06490 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 29 Sep 2009 19:12:12 +0000 Subject: Sorry, three commits in one, became difficult to untangle.. Editors Modules * render/ module added in editors, moved the preview render code there and also shading related operators. * physics/ module made more consistent with other modules. renaming files, making a single physics_ops.c for operators and keymaps. Also move all particle related operators here now. * space_buttons/ now should have only operators relevant to the buttons specificially. Updates & Notifiers * Material/Texture/World/Lamp can now be passed to DAG_id_flush_update, which will go back to a callback in editors. Eventually these should be in the depsgraph itself, but for now this gives a unified call for doing updates. * GLSL materials are now refreshed on changes. There's still various cases missing, * Preview icons now hook into this system, solving various update cases that were missed before. * Also fixes issue in my last commit, where some preview would not render, problem is avoided in the new system. Icon Rendering * On systems with support for non-power of two textures, an OpenGL texture is now used instead of glDrawPixels. This avoids problems with icons get clipped on region borders. On my Linux desktop, this gives an 1.1x speedup, and on my Mac laptop a 2.3x speedup overall in redrawing the full window, with the default setup. The glDrawPixels implementation on Mac seems to have a lot of overhread. * Preview icons are now drawn using proper premul alpha, and never faded so you can see them clearly. * Also tried to fix issue with texture node preview rendering, globals can't be used with threads reliably. --- source/blender/makesrna/intern/rna_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 3723c05ada0..8e50ffe7b94 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -173,7 +173,7 @@ void RNA_def_world(struct BlenderRNA *brna); void rna_def_animdata_common(struct StructRNA *srna); void rna_def_texmat_common(struct StructRNA *srna, const char *texspace_editable); -void rna_def_mtex_common(struct StructRNA *srna, const char *begin, const char *activeget, const char *activeset, const char *structname); +void rna_def_mtex_common(struct StructRNA *srna, const char *begin, const char *activeget, const char *activeset, const char *structname, const char *update); void rna_def_render_layer_common(struct StructRNA *srna, int scene); void rna_ID_name_get(struct PointerRNA *ptr, char *value); -- cgit v1.2.3 From 022a343223be895c4dfab63af28ed0a2b822df71 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 1 Oct 2009 17:15:23 +0000 Subject: Texture stack influences are now all separate values, and negative mapped values now have their influence negated instead. Also a few RNA changes for TextureSlot. Bumped subversion for the version patch. --- source/blender/makesrna/intern/rna_internal.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/makesrna/intern/rna_internal.h') diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 8e50ffe7b94..1ebf03425d4 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -197,6 +197,7 @@ void rna_object_vcollayer_name_set(struct PointerRNA *ptr, const char *value, ch void rna_Object_update(struct bContext *C, struct PointerRNA *ptr); void rna_Object_update_data(struct bContext *C, struct PointerRNA *ptr); void rna_Mesh_update_draw(struct bContext *C, struct PointerRNA *ptr); +void rna_TextureSlot_update(struct bContext *C, struct PointerRNA *ptr); /* API functions */ -- cgit v1.2.3