diff options
author | Ton Roosendaal <ton@blender.org> | 2009-06-07 15:12:35 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-06-07 15:12:35 +0400 |
commit | a2f9ca3b3fcd020e5124b6c3fb6523545377b5e2 (patch) | |
tree | 83830cf58852e6b2a6572d36b244bd6bdeddfebc /source/blender/render | |
parent | 1bb8d745b914aade700d69220e665096d5db43d0 (diff) |
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...
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 16 |
1 files changed, 11 insertions, 5 deletions
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); |