diff options
author | Ton Roosendaal <ton@blender.org> | 2009-06-08 14:00:14 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-06-08 14:00:14 +0400 |
commit | ca6a8a233b653e4545427b00fe265566da924522 (patch) | |
tree | 1fef07ad3ac191f5c2ddba1f78f3da4054078457 /source/blender/editors/preview | |
parent | 9d4ebe1088dd5f59b2a53d47eaed1d40ab5c0a3e (diff) |
2.5
Preview renders:
- Added proper button type (BUT_EXTRA) for preview buttons, to
handle drawing better. It now first draws an alpha mask, to
ensure the preview is correctly fitting inside the widget style.
It then draws the outline.
- Added protection for executing preview renders while regular
rendering, that's not going to work...
Diffstat (limited to 'source/blender/editors/preview')
-rw-r--r-- | source/blender/editors/preview/previewrender.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/source/blender/editors/preview/previewrender.c b/source/blender/editors/preview/previewrender.c index 096282a0f58..56ec22a44b0 100644 --- a/source/blender/editors/preview/previewrender.c +++ b/source/blender/editors/preview/previewrender.c @@ -640,14 +640,8 @@ void ED_preview_draw(const bContext *C, void *idp, rcti *rect) if(rres.rectf) { if(rres.rectx==newx && rres.recty==newy) { - glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA); - glEnable(GL_BLEND); - glaDrawPixelsSafe(rect->xmin, rect->ymin, rres.rectx, rres.recty, rres.rectx, GL_RGBA, GL_FLOAT, rres.rectf); ok= 1; - - glDisable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } } BLI_unlock_malloc_thread(); @@ -1083,8 +1077,15 @@ static void shader_preview_free(void *customdata) void ED_preview_shader_job(const bContext *C, void *owner, ID *id, int sizex, int sizey) { - wmJob *steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner); - ShaderPreview *sp= MEM_callocN(sizeof(ShaderPreview), "shader preview"); + wmJob *steve; + ShaderPreview *sp; + + /* XXX ugly global still, but we can't do preview while rendering */ + if(G.rendering) + return; + + steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner); + sp= MEM_callocN(sizeof(ShaderPreview), "shader preview"); /* customdata for preview thread */ sp->scene= CTX_data_scene(C); |