diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-02-16 22:24:04 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-02-16 22:24:04 +0300 |
commit | ad01c90ee3942fb2a4a792f0454a136b441f42b4 (patch) | |
tree | f0468981d9f46ae32b386d36ab34d1d9bbda9a2f /source/blender/editors/render | |
parent | a4c010975a6afaecc2ca8f8284de3febda113369 (diff) |
Revert render slots commit for release, I can't find the bug or even redo
it myself, there will still be render slots just old implementation.
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_preview.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 89a49b12751..76ed438ae41 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -474,7 +474,7 @@ static int ed_preview_draw_rect(ScrArea *sa, Scene *sce, ID *id, int split, int } } - re= RE_GetRender(name); + re= RE_GetRender(name, RE_SLOT_DEFAULT); RE_AcquireResultImage(re, &rres); if(rres.rectf) { @@ -702,7 +702,7 @@ void BIF_view3d_previewrender(Scene *scene, ScrArea *sa) ri->status= 0; sprintf(name, "View3dPreview %p", sa); - re= ri->re= RE_NewRender(name); + re= ri->re= RE_NewRender(name, RE_SLOT_DEFAULT); //RE_display_draw_cb(re, view3d_previewrender_progress); //RE_stats_draw_cb(re, view3d_previewrender_stats); //RE_test_break_cb(re, qtest); @@ -884,17 +884,24 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs char name[32]; int sizex; + if(GS(id->name) == ID_MA) + id= (ID*)copy_material_for_render((Material*)id); + /* get the stuff from the builtin preview dbase */ sce= preview_prepare_scene(sp->scene, id, idtype, sp); // XXX sizex - if(sce==NULL) return; + if(sce==NULL) { + if(GS(id->name) == ID_MA) + free_material((Material*)id); + return; + } if(!split || first) sprintf(name, "Preview %p", sp->owner); else sprintf(name, "SecondPreview %p", sp->owner); - re= RE_GetRender(name); + re= RE_GetRender(name, RE_SLOT_DEFAULT); /* full refreshed render from first tile */ if(re==NULL) - re= RE_NewRender(name); + re= RE_NewRender(name, RE_SLOT_DEFAULT); /* sce->r gets copied in RE_InitState! */ sce->r.scemode &= ~(R_MATNODE_PREVIEW|R_TEXNODE_PREVIEW); @@ -954,6 +961,9 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs /* unassign the pointers, reset vars */ preview_prepare_scene(sp->scene, NULL, GS(id->name), NULL); + + if(GS(id->name) == ID_MA) + free_material((Material*)id); } /* runs inside thread for material and icons */ |