diff options
-rwxr-xr-x | render_sdl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/render_sdl.c b/render_sdl.c index 3180c68..54fa3a5 100755 --- a/render_sdl.c +++ b/render_sdl.c @@ -1709,13 +1709,16 @@ void render_video_loop(void) SDL_CondWait(frame_ready, frame_mutex); } for (int i = 0; i < frame_queue_len; i++) + while (frame_queue_len) { frame f = frame_queue[frame_queue_read++]; frame_queue_read &= 0x3; + frame_queue_len--; + SDL_UnlockMutex(frame_mutex); process_framebuffer(f.buffer, f.which, f.width); release_buffer(f.buffer); + SDL_LockMutex(frame_mutex); } - frame_queue_len = 0; } SDL_UnlockMutex(frame_mutex); |