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-07-27 12:58:34 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-07-27 12:58:34 +0400
commit93c29aaeb1b0021bac6cb09da1f0cfc7ca90809e (patch)
tree681e2791680ca96ea3121a2449ac689eeb1148e6 /source/blender/editors/render
parent1543a713a855f15786ac896aa47c23f2092a4438 (diff)
Fix #32187: OpenGL preview does not take into account overwrite option
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r--source/blender/editors/render/render_opengl.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index 538b4b3884a..12f1e09f5be 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -476,6 +476,7 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
int ok = 0;
const short view_context = (oglrender->v3d != NULL);
Object *camera = NULL;
+ int is_movie;
/* go to next frame */
if (CFRA < oglrender->nfra)
@@ -490,6 +491,21 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
CFRA++;
}
+ is_movie = BKE_imtype_is_movie(scene->r.im_format.imtype);
+
+ if (!is_movie) {
+ BKE_makepicstring(name, scene->r.pic, oglrender->bmain->name, scene->r.cfra, scene->r.im_format.imtype, scene->r.scemode & R_EXTENSION, TRUE);
+
+ if ((scene->r.mode & R_NO_OVERWRITE) && BLI_exists(name)) {
+ printf("skipping existing frame \"%s\"\n", name);
+
+ /* go to next frame */
+ oglrender->nfra += scene->r.frame_step;
+
+ return 1;
+ }
+ }
+
/* update animated image textures for gpu, etc,
* call before BKE_scene_update_for_newframe so modifiers with textures don't lag 1 frame */
ED_image_update_frame(bmain, CFRA);
@@ -538,7 +554,7 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
ibuf = ibuf_cpy;
}
- if (BKE_imtype_is_movie(scene->r.im_format.imtype)) {
+ if (is_movie) {
ok = oglrender->mh->append_movie(&scene->r, SFRA, CFRA, (int *)ibuf->rect,
oglrender->sizex, oglrender->sizey, oglrender->reports);
if (ok) {
@@ -547,7 +563,6 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
}
}
else {
- BKE_makepicstring(name, scene->r.pic, oglrender->bmain->name, scene->r.cfra, scene->r.im_format.imtype, scene->r.scemode & R_EXTENSION, TRUE);
ok = BKE_imbuf_write_stamp(scene, camera, ibuf, name, &scene->r.im_format);
if (ok == 0) {