Disabling color channels for float images in clip editor now works fine.

This commit is contained in:
Sergey Sharybin
2012-04-07 16:59:06 +00:00
parent 7018345bee
commit fec5221a65
2 changed files with 11 additions and 3 deletions

View File

@@ -1125,6 +1125,9 @@ void BKE_tracking_disable_imbuf_channels(ImBuf *ibuf, int disable_red, int disab
}
}
}
if (ibuf->rect_float)
ibuf->userflags |= IB_RECT_INVALID;
}
static void disable_imbuf_channels(ImBuf *ibuf, MovieTrackingTrack *track, int grayscale)

View File

@@ -216,6 +216,13 @@ static void draw_movieclip_notes(SpaceClip *sc, ARegion *ar)
ED_region_info_draw(ar, str, block, 0.6f);
}
static void verify_buffer_float(ImBuf *ibuf)
{
if (ibuf->rect_float && (ibuf->rect == NULL || (ibuf->userflags & IB_RECT_INVALID))) {
IMB_rect_from_float(ibuf);
}
}
static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf,
int width, int height, float zoomx, float zoomy)
{
@@ -233,9 +240,7 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf,
glRectf(x, y, x + zoomx * width, y + zoomy * height);
}
else {
if (ibuf->rect_float && !ibuf->rect) {
IMB_rect_from_float(ibuf);
}
verify_buffer_float(ibuf);
if (ibuf->rect)
glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);