From a2f9ca3b3fcd020e5124b6c3fb6523545377b5e2 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 7 Jun 2009 11:12:35 +0000 Subject: 2.5 Nice goodie: Preview renders! - Added new preview.blend, allowing super wide cinemascope previews - Draws nicely blended inside widget type, rounded corners - Preview now renders using all available cpus/cores. - Uses - hopefully rock stable - method, which doesn't copy or allocate anything for previews, but just uses render API calls. - Multiple previews are possible! But, added provision in Jobs manager to only render one preview job at a time. If you start more preview jobs, they're suspended until it's their turn. Bugfix: new buttons context code crashed when going full-window. Tweaks are still needed for notifiers. I have to figure out still how to retrieve SpaceButs button view types... --- source/blender/render/intern/source/pipeline.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 2d6e03f95c2..683bb9eb1a0 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1120,11 +1120,17 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, int winx, int winy /* always call, checks for gamma, gamma tables and jitter too */ make_sample_tables(re); - /* make empty render result, so display callbacks can initialize */ - RE_FreeRenderResult(re->result); - re->result= MEM_callocN(sizeof(RenderResult), "new render result"); - re->result->rectx= re->rectx; - re->result->recty= re->recty; + /* if preview render, we try to keep old result */ + if(re->result && (re->r.scemode & R_NODE_PREVIEW) && + re->result->rectx==re->rectx && re->result->recty==re->recty); + else { + + /* make empty render result, so display callbacks can initialize */ + RE_FreeRenderResult(re->result); + re->result= MEM_callocN(sizeof(RenderResult), "new render result"); + re->result->rectx= re->rectx; + re->result->recty= re->recty; + } /* we clip faces with a minimum of 2 pixel boundary outside of image border. see zbuf.c */ re->clipcrop= 1.0f + 2.0f/(float)(re->winx>re->winy?re->winy:re->winx); -- cgit v1.2.3