diff options
author | Harry Jeffery <harry@exec64.co.uk> | 2015-12-10 15:26:01 +0000 |
---|---|---|
committer | Harry Jeffery <harry@exec64.co.uk> | 2015-12-10 15:26:01 +0000 |
commit | 3e1523d6a7c83d74673f5106ff87f7da465f467c (patch) | |
tree | 9a93d3b3df80e2593649101339780904808cc0a9 /src/loader.c | |
parent | 6cd76000aa7875fcc7a74cce0ce31783fd82196d (diff) | |
download | imv-3e1523d6a7c83d74673f5106ff87f7da465f467c.tar.gz |
Make imv_loader_get_image more informative
Diffstat (limited to 'src/loader.c')
-rw-r--r-- | src/loader.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/loader.c b/src/loader.c index 97ba8e4..22ed9be 100644 --- a/src/loader.c +++ b/src/loader.c @@ -81,14 +81,17 @@ void imv_loader_load_path(struct imv_loader *ldr, const char *path) pthread_mutex_unlock(&ldr->lock); } -FIBITMAP *imv_loader_get_image(struct imv_loader *ldr) +int imv_loader_get_image(struct imv_loader *ldr, FIBITMAP **out_bmp, + int *out_is_new_image) { - FIBITMAP *ret = NULL; + int ret = 0; pthread_mutex_lock(&ldr->lock); if(ldr->out_bmp) { - ret = ldr->out_bmp; + *out_bmp = ldr->out_bmp; ldr->out_bmp = NULL; + *out_is_new_image = ldr->out_is_new_image; + ret = 1; } pthread_mutex_unlock(&ldr->lock); @@ -250,6 +253,7 @@ static void *imv_loader_bg_new_img(void *data) FreeImage_Unload(ldr->out_bmp); } ldr->out_bmp = FreeImage_Clone(bmp); + ldr->out_is_new_image = 1; ldr->width = width; ldr->height = height; ldr->cur_frame = 0; @@ -364,6 +368,7 @@ static void *imv_loader_bg_next_frame(void *data) FreeImage_Unload(ldr->out_bmp); } ldr->out_bmp = FreeImage_Clone(ldr->bmp); + ldr->out_is_new_image = 0; pthread_mutex_unlock(&ldr->lock); return 0; |