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>2013-04-24 23:21:14 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-04-24 23:21:14 +0400
commit04c8d8b919eca366cad8b6066e4842a88c91c969 (patch)
tree09d192fa21636174b71e210a970ccabef3adee44 /source/blender/editors/render
parent00d04e1924e0247d79b1ef1913e8ae384583b515 (diff)
Fix blender internal preview rendering continuously restarting after recent
viewport render changes. Actually was an older issue that would cause unnecessary preview render restarts if the render result was not allocated before it was drawn. Now the render result is being reallocated each time for freestyle which made the issue worse.
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r--source/blender/editors/render/render_preview.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index 7ef84b9d6eb..e8c578cb685 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -531,6 +531,7 @@ static int ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect, r
int offx = 0;
int newx = BLI_rcti_size_x(rect);
int newy = BLI_rcti_size_y(rect);
+ int ok = 0;
if (!split || first) sprintf(name, "Preview %p", (void *)sa);
else sprintf(name, "SecondPreview %p", (void *)sa);
@@ -549,7 +550,6 @@ static int ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect, r
/* test if something rendered ok */
re = RE_GetRender(name);
RE_AcquireResultImage(re, &rres);
- RE_ReleaseResultImage(re);
if (rres.rectf) {
@@ -568,12 +568,17 @@ static int ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect, r
MEM_freeN(rect_byte);
- return 1;
+ ok = 1;
}
}
}
+ else {
+ ok = 1;
+ }
- return 0;
+ RE_ReleaseResultImage(re);
+
+ return ok;
}
void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, rcti *rect)