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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-10-22 21:34:16 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-10-22 21:34:16 +0400
commit8a2c30ac57ff5739a6ccbbdcbaa3f63c1438588b (patch)
tree664ed17dbefb01325f1cf0d8300a779950f50ee8 /intern/cycles/blender/blender_util.h
parent3285d47842657161b2206ccb2b29f34ef51eab99 (diff)
RNA C++ API improvements
Added support of such features, as: - Ability to call RNA functions using C++ classes For example RenderEngine.tag_update - Property setters (for scalars and arrays) Used Qt/jQuery-like getters/setters style, meaning Class.prop() is a getter, Class.prop(value) is a setter. Still to come: Collection functions are not currently registering inside a property Meaning BlendData.meshes wouldn't be a subclass of BlendDataMeshes result you'll need to explicitly create BlendDataMeshes for now instead of doing BlendData.meshes.remove()
Diffstat (limited to 'intern/cycles/blender/blender_util.h')
-rw-r--r--intern/cycles/blender/blender_util.h44
1 files changed, 11 insertions, 33 deletions
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h
index da8f30ea169..079320e909c 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -30,29 +30,7 @@
* todo: clean this up ... */
extern "C" {
-
-struct RenderEngine;
-struct RenderResult;
-
-ID *rna_Object_to_mesh(void *_self, void *reports, void *scene, int apply_modifiers, int settings);
-void rna_Main_meshes_remove(void *bmain, void *reports, void *mesh);
-void rna_Object_create_duplilist(void *ob, void *reports, void *sce, int settings);
-void rna_Object_free_duplilist(void *ob);
-void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values);
-void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values);
-struct RenderResult *RE_engine_begin_result(struct RenderEngine *engine, int x, int y, int w, int h, const char *layername);
-void RE_engine_update_result(struct RenderEngine *engine, struct RenderResult *result);
-void RE_engine_end_result(struct RenderEngine *engine, struct RenderResult *result, int cancel);
-int RE_engine_test_break(struct RenderEngine *engine);
-void RE_engine_update_stats(struct RenderEngine *engine, const char *stats, const char *info);
-void RE_engine_update_progress(struct RenderEngine *engine, float progress);
-void engine_tag_redraw(void *engine);
-void engine_tag_update(void *engine);
-int rna_Object_is_modified(void *ob, void *scene, int settings);
-int rna_Object_is_deform_modified(void *ob, void *scene, int settings);
void BLI_timestr(double _time, char *str);
-void rna_ColorRamp_eval(void *coba, float position, float color[4]);
-void rna_Scene_frame_set(void *scene, int frame, float subframe);
void BKE_image_user_frame_calc(void *iuser, int cfra, int fieldnr);
void BKE_image_user_file_path(void *iuser, void *ima, char *path);
}
@@ -61,10 +39,7 @@ CCL_NAMESPACE_BEGIN
static inline BL::Mesh object_to_mesh(BL::Object self, BL::Scene scene, bool apply_modifiers, bool render)
{
- ID *data = rna_Object_to_mesh(self.ptr.data, NULL, scene.ptr.data, apply_modifiers, (render)? 2: 1);
- PointerRNA ptr;
- RNA_id_pointer_create(data, &ptr);
- return BL::Mesh(ptr);
+ return self.to_mesh(NULL, scene, apply_modifiers, (render)? 2: 1);
}
static inline void colorramp_to_array(BL::ColorRamp ramp, float4 *data, int size)
@@ -72,34 +47,37 @@ static inline void colorramp_to_array(BL::ColorRamp ramp, float4 *data, int size
for(int i = 0; i < size; i++) {
float color[4];
- rna_ColorRamp_eval(ramp.ptr.data, i/(float)(size-1), color);
+ ramp.evaluate(i/(float)(size-1), color);
data[i] = make_float4(color[0], color[1], color[2], color[3]);
}
}
static inline void object_remove_mesh(BL::BlendData data, BL::Mesh mesh)
{
- rna_Main_meshes_remove(data.ptr.data, NULL, mesh.ptr.data);
+ /* TODO: BlendData.meshes ideally should be also a subclass of BlendDataMeshes */
+ BL::BlendDataMeshes mesh_data(data.ptr);
+
+ mesh_data.remove(NULL, mesh);
}
static inline void object_create_duplilist(BL::Object self, BL::Scene scene)
{
- rna_Object_create_duplilist(self.ptr.data, NULL, scene.ptr.data, 2);
+ self.dupli_list_create(NULL, scene, 2);
}
static inline void object_free_duplilist(BL::Object self)
{
- rna_Object_free_duplilist(self.ptr.data);
+ self.dupli_list_clear();
}
static inline bool BKE_object_is_modified(BL::Object self, BL::Scene scene, bool preview)
{
- return rna_Object_is_modified(self.ptr.data, scene.ptr.data, (preview)? (1<<0): (1<<1))? true: false;
+ return self.is_modified(scene, (preview)? (1<<0): (1<<1))? true: false;
}
static inline bool BKE_object_is_deform_modified(BL::Object self, BL::Scene scene, bool preview)
{
- return rna_Object_is_deform_modified(self.ptr.data, scene.ptr.data, (preview)? (1<<0): (1<<1))? true: false;
+ return self.is_deform_modified(scene, (preview)? (1<<0): (1<<1))? true: false;
}
static inline string image_user_file_path(BL::ImageUser iuser, BL::Image ima, int cfra)
@@ -112,7 +90,7 @@ static inline string image_user_file_path(BL::ImageUser iuser, BL::Image ima, in
static inline void scene_frame_set(BL::Scene scene, int frame)
{
- rna_Scene_frame_set(scene.ptr.data, frame, 0.0f);
+ scene.frame_set(frame, 0.0f);
}
/* Utilities */