aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/image.c4
-rw-r--r--src/main.c2
-rw-r--r--src/texture.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/src/image.c b/src/image.c
index b2bf2c9..c7bac62 100644
--- a/src/image.c
+++ b/src/image.c
@@ -150,6 +150,10 @@ void imv_image_load_next_frame(struct imv_image *img)
frame_time = *(int*)FreeImage_GetTagValue(tag);
}
+ /* some gifs don't provide a frame time at all */
+ if(frame_time == 0) {
+ frame_time = 100;
+ }
img->frame_time += frame_time * 0.001;
FreeImage_UnlockPage(img->mbmp, frame, 0);
diff --git a/src/main.c b/src/main.c
index b4ac73d..002a3ec 100644
--- a/src/main.c
+++ b/src/main.c
@@ -272,6 +272,7 @@ int main(int argc, char** argv)
if(view.playing) {
double cur_time = SDL_GetTicks() / 1000.0;
double dt = cur_time - last_time;
+ last_time = SDL_GetTicks() / 1000.0;
imv_image_play(&img, dt);
}
@@ -286,7 +287,6 @@ int main(int argc, char** argv)
view.redraw = 0;
SDL_RenderPresent(renderer);
}
- last_time = SDL_GetTicks() / 1000.0;
SDL_Delay(10);
}
diff --git a/src/texture.c b/src/texture.c
index 2ce328f..a5c5001 100644
--- a/src/texture.c
+++ b/src/texture.c
@@ -25,8 +25,8 @@ void imv_init_texture(struct imv_texture *tex, SDL_Renderer *r)
SDL_RendererInfo ri;
SDL_GetRendererInfo(r, &ri);
- tex->chunk_width = ri.max_texture_width;
- tex->chunk_height = ri.max_texture_height;
+ tex->chunk_width = ri.max_texture_width != 0 ? ri.max_texture_width : 4096;
+ tex->chunk_height = ri.max_texture_height != 0 ? ri.max_texture_height : 4096;
}
void imv_destroy_texture(struct imv_texture *tex)