diff options
author | Ton Roosendaal <ton@blender.org> | 2009-06-08 20:24:37 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-06-08 20:24:37 +0400 |
commit | ddbd871567911a5243de23de3c7ec8fa1ef061aa (patch) | |
tree | 391f890c88b1872ffa4bda1860e7a6bda1a31edf /source | |
parent | c33b6a54f7ae13c49b9b4ccf3e0e69024a9db36e (diff) |
2.5
Small fixes:
- Preview render now accepts resize of 1 pixel without re-render,
solves re-renders on scrolling window or dragging panel, because
of float rounding.
- Panel dragging outline was off 0.5 pixel, showed as fat AA lines
- On switching tab, the preview gets re-rendered
Diffstat (limited to 'source')
4 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c index a141e58fbe9..278f7c026b1 100644 --- a/source/blender/editors/interface/interface_panel.c +++ b/source/blender/editors/interface/interface_panel.c @@ -580,7 +580,7 @@ void ui_draw_aligned_panel(ARegion *ar, uiStyle *style, uiBlock *block, rcti *re else uiSetRoundBox(3); UI_ThemeColorShade(TH_BACK, -120); - uiRoundRect(rect->xmin, rect->ymin, rect->xmax, headrect.ymax+1, 8); + uiRoundRect(0.5f + rect->xmin, 0.5f + rect->ymin, 0.5f + rect->xmax, 0.5f + headrect.ymax+1, 8); } if(panel->flag & PNL_OVERLAP) { if(panel->control & UI_PNL_SOLID) uiSetRoundBox(15); diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 0660b7f19a9..03487e2301c 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1632,6 +1632,7 @@ static void widget_draw_extra_mask(const bContext *C, uiBut *but, uiWidgetType * widget_init(&wtb); if(but->block->drawextra) { + /* note: drawextra can change rect +1 or -1, to match round errors of existing previews */ but->block->drawextra(C, but->poin, rect); /* make mask to draw over image */ diff --git a/source/blender/editors/preview/previewrender.c b/source/blender/editors/preview/previewrender.c index 56ec22a44b0..b0d093dc10b 100644 --- a/source/blender/editors/preview/previewrender.c +++ b/source/blender/editors/preview/previewrender.c @@ -639,7 +639,12 @@ void ED_preview_draw(const bContext *C, void *idp, rcti *rect) RE_GetResultImage(RE_GetRender(name), &rres); if(rres.rectf) { - if(rres.rectx==newx && rres.recty==newy) { + + if( ABS(rres.rectx-newx)<2 && ABS(rres.recty-newy)<2 ) { + /* correct size, then black outline matches */ + rect->xmax= rect->xmin + rres.rectx; + rect->ymax= rect->ymin + rres.recty; + glaDrawPixelsSafe(rect->xmin, rect->ymin, rres.rectx, rres.recty, rres.rectx, GL_RGBA, GL_FLOAT, rres.rectf); ok= 1; } @@ -1039,7 +1044,8 @@ static void shader_preview_startjob(void *customdata, short *stop, short *do_upd } /* lens adjust */ oldlens= ((Camera *)sce->camera->data)->lens; - ((Camera *)sce->camera->data)->lens *= (float)sp->sizey/(float)sp->sizex; + if(sp->sizex > sp->sizey) + ((Camera *)sce->camera->data)->lens *= (float)sp->sizey/(float)sp->sizex; /* entire cycle for render engine */ RE_SetCamera(re, sce->camera); diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c index ee710cd7b67..80f7ff42c5b 100644 --- a/source/blender/editors/space_buttons/buttons_header.c +++ b/source/blender/editors/space_buttons/buttons_header.c @@ -130,6 +130,7 @@ static void do_buttons_buttons(bContext *C, void *arg, int event) else if(sbuts->mainb != BCONTEXT_TEXTURE) sbuts->flag &= ~SB_WORLD_TEX; + sbuts->preview= 1; break; } } |