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>2011-11-02 17:36:28 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-11-02 17:36:28 +0400
commit79a389ee3711f0528c33e5aeb4b2a202e5e44b38 (patch)
tree844f5ad24583cf4664ff98b591fa7859bb71ad78 /source/blender
parent3d35e004d35faf45968c0cead7d758a5599a2bcc (diff)
RenderEngine: add .is_animation and .is_preview properties to detect if it's
an animation or preview render that is being done.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/makesrna/intern/rna_render.c9
-rw-r--r--source/blender/render/extern/include/RE_engine.h7
-rw-r--r--source/blender/render/intern/include/render_types.h1
-rw-r--r--source/blender/render/intern/source/external_engine.c5
-rw-r--r--source/blender/render/intern/source/pipeline.c4
5 files changed, 25 insertions, 1 deletions
diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index 1498d161209..9b53b477c52 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -251,9 +251,16 @@ static void rna_def_render_engine(BlenderRNA *brna)
prop= RNA_def_string(func, "message", "", 0, "Report Message", "");
RNA_def_property_flag(prop, PROP_REQUIRED);
- /* registration */
RNA_define_verify_sdna(0);
+ prop= RNA_def_property(srna, "is_animation", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", RE_ENGINE_ANIMATION);
+
+ prop= RNA_def_property(srna, "is_preview", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", RE_ENGINE_PREVIEW);
+
+ /* registration */
+
prop= RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE);
RNA_def_property_string_sdna(prop, NULL, "type->idname");
RNA_def_property_flag(prop, PROP_REGISTER|PROP_NEVER_CLAMP);
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h
index 1326ed495ec..344ef301f4c 100644
--- a/source/blender/render/extern/include/RE_engine.h
+++ b/source/blender/render/extern/include/RE_engine.h
@@ -46,11 +46,16 @@ struct Scene;
/* External Engine */
+/* RenderEngineType.flag */
#define RE_INTERNAL 1
#define RE_GAME 2
#define RE_USE_PREVIEW 4
#define RE_USE_POSTPROCESS 8
+/* RenderEngine.flag */
+#define RE_ENGINE_ANIMATION 1
+#define RE_ENGINE_PREVIEW 2
+
extern ListBase R_engines;
typedef struct RenderEngineType {
@@ -70,6 +75,8 @@ typedef struct RenderEngineType {
typedef struct RenderEngine {
RenderEngineType *type;
+ int flag;
+
struct Render *re;
ListBase fullresult;
} RenderEngine;
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index aa2dd29814e..ae4e55b9b88 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -601,6 +601,7 @@ typedef struct LampRen {
#define R_NEED_TANGENT 16
#define R_BAKE_TRACE 32
#define R_BAKING 64
+#define R_ANIMATION 128
/* vlakren->flag (vlak = face in dutch) char!!! */
#define R_SMOOTH 1
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index a4d1e502f13..a6214329d0e 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -265,6 +265,11 @@ int RE_engine_render(Render *re, int do_all)
engine = RE_engine_create(type);
engine->re= re;
+ if(re->flag & R_ANIMATION)
+ engine->flag |= RE_ENGINE_ANIMATION;
+ if(re->r.scemode & R_PREVIEWBUTS)
+ engine->flag |= RE_ENGINE_PREVIEW;
+
if((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0)
scene_update_for_newframe(re->main, re->scene, re->lay);
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 64b36c1fd12..8d72be1684c 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -3085,6 +3085,8 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
/* is also set by caller renderwin.c */
G.rendering= 1;
+ re->flag |= R_ANIMATION;
+
if(BKE_imtype_is_movie(scene->r.imtype))
if(!mh->start_movie(scene, &re->r, re->rectx, re->recty, re->reports))
G.afbreek= 1;
@@ -3193,6 +3195,8 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
scene->r.cfra= cfrao;
+ re->flag &= ~R_ANIMATION;
+
/* UGLY WARNING */
G.rendering= 0;
}