Fix the update areas for incremental loading of compressed tgas. (#171883,
2005-03-29 Matthias Clasen <mclasen@redhat.com> * io-tga.c (parse_rle_data): Fix the update areas for incremental loading of compressed tgas. (#171883, David Costanzo)
This commit is contained in:

committed by
Matthias Clasen

parent
8e5713f3e0
commit
2aa05e973e
@ -1,3 +1,8 @@
|
|||||||
|
2005-03-29 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* io-tga.c (parse_rle_data): Fix the update areas for incremental
|
||||||
|
loading of compressed tgas. (#171883, David Costanzo)
|
||||||
|
|
||||||
2005-03-27 Matthias Clasen <mclasen@redhat.com>
|
2005-03-27 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* io-bmp.c (DoCompressed): Use the correct update regions for
|
* io-bmp.c (DoCompressed): Use the correct update regions for
|
||||||
|
@ -23,11 +23,6 @@
|
|||||||
/*
|
/*
|
||||||
* Some NOTES about the TGA loader (2001/06/07, nikke@swlibero.org)
|
* Some NOTES about the TGA loader (2001/06/07, nikke@swlibero.org)
|
||||||
*
|
*
|
||||||
* - The module doesn't currently provide support for TGA images where the
|
|
||||||
* order of the pixels isn't left-to-right and top-to-bottom. I plan to
|
|
||||||
* add support for those files as soon as I get one of them. I haven't
|
|
||||||
* run into one yet. (And I don't seem to be able to create it with GIMP.)
|
|
||||||
*
|
|
||||||
* - The TGAFooter isn't present in all TGA files. In fact, there's an older
|
* - The TGAFooter isn't present in all TGA files. In fact, there's an older
|
||||||
* format specification, still in use, which doesn't cover the TGAFooter.
|
* format specification, still in use, which doesn't cover the TGAFooter.
|
||||||
* Actually, most TGA files I have are of the older type. Anyway I put the
|
* Actually, most TGA files I have are of the older type. Anyway I put the
|
||||||
@ -635,6 +630,7 @@ static guint parse_rle_data_grayscale(TGAContext *ctx)
|
|||||||
|
|
||||||
static gboolean parse_rle_data(TGAContext *ctx, GError **err)
|
static gboolean parse_rle_data(TGAContext *ctx, GError **err)
|
||||||
{
|
{
|
||||||
|
guint rows = 0;
|
||||||
guint count = 0;
|
guint count = 0;
|
||||||
guint pbuf_count = 0;
|
guint pbuf_count = 0;
|
||||||
guint bytes_done_before = ctx->pbuf_bytes_done;
|
guint bytes_done_before = ctx->pbuf_bytes_done;
|
||||||
@ -667,14 +663,15 @@ static gboolean parse_rle_data(TGAContext *ctx, GError **err)
|
|||||||
*/
|
*/
|
||||||
if (!(ctx->hdr->flags & TGA_ORIGIN_UPPER))
|
if (!(ctx->hdr->flags & TGA_ORIGIN_UPPER))
|
||||||
pixbuf_flip_vertically (ctx->pbuf);
|
pixbuf_flip_vertically (ctx->pbuf);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rows = ctx->pbuf_bytes_done / ctx->pbuf->rowstride - bytes_done_before / ctx->pbuf->rowstride;
|
||||||
if (ctx->ufunc)
|
if (ctx->ufunc)
|
||||||
(*ctx->ufunc) (ctx->pbuf, 0, ctx->pbuf_bytes_done / ctx->pbuf->rowstride,
|
(*ctx->ufunc) (ctx->pbuf, 0, bytes_done_before / ctx->pbuf->rowstride,
|
||||||
ctx->pbuf->width, pbuf_count / ctx->pbuf->rowstride,
|
ctx->pbuf->width, rows,
|
||||||
ctx->udata);
|
ctx->udata);
|
||||||
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user