Camera tracking: fixes for preview widget

- Clamping of image on boundaries now happens nicely
- Looks like to prevent dark edges on image boundary when doing
  bicubic interpolation, margin should be 3px. Maybe somebody can verify this?
This commit is contained in:
2012-01-09 20:19:07 +00:00
parent f3c2ec7658
commit 0e4e608b71
2 changed files with 6 additions and 6 deletions

View File

@@ -1511,8 +1511,8 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wc
else if(scopes->track_preview) {
/* additional margin around image */
/* NOTE: should be kept in sync with value from BKE_movieclip_update_scopes */
const int margin= 2;
float zoomx, zoomy, track_pos[2], off_x, off_y;
const int margin= 3;
float zoomx, zoomy, track_pos[2], off_x, off_y, x0, y0;
int a;
ImBuf *drawibuf;
@@ -1529,11 +1529,11 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wc
off_x= ((int)track_pos[0]-track_pos[0]+0.5)*zoomx;
off_y= ((int)track_pos[1]-track_pos[1]+0.5)*zoomy;
x0= (int)(off_x+rect.xmin-zoomx*(margin-0.5f))+1;
y0= (int)(off_y+rect.ymin-zoomy*(margin-0.5f))+1;
drawibuf= scale_trackpreview_ibuf(scopes->track_preview, zoomx, zoomy);
glaDrawPixelsSafe(off_x+rect.xmin-zoomx*(margin-0.5f), off_y+rect.ymin-zoomy*(margin-0.5f),
rect.xmax-rect.xmin+2+(int)(zoomx*(margin-0.5f)-off_x),
rect.ymax-rect.ymin+2+(int)(zoomy*(margin-0.5f)-off_y),
glaDrawPixelsSafe(x0, y0, rect.xmax-x0+1, rect.ymax-y0+1,
drawibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, drawibuf->rect);
IMB_freeImBuf(drawibuf);