From 235bcacc7b8462d00fe17caa8878f43e90f7428b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 13 Nov 2018 20:59:39 +0530 Subject: [PATCH] Make the buffer clearing more robust Now happens immediately after the buffer is swapped. Fixes #1104 --- kitty/glfw.c | 7 +++++-- kitty/shaders.c | 5 ----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/kitty/glfw.c b/kitty/glfw.c index 837887bf4..00211e76c 100644 --- a/kitty/glfw.c +++ b/kitty/glfw.c @@ -816,8 +816,11 @@ is_mouse_hidden(OSWindow *w) { void -swap_window_buffers(OSWindow *w) { - glfwSwapBuffers(w->handle); +swap_window_buffers(OSWindow *os_window) { + glfwSwapBuffers(os_window->handle); + // ensure all pixels are cleared to background color at least once in the + // new buffer + if (os_window->clear_count++ < 2) blank_os_window(os_window); } void diff --git a/kitty/shaders.c b/kitty/shaders.c index 1f3f1c1c3..ae18fb16f 100644 --- a/kitty/shaders.c +++ b/kitty/shaders.c @@ -437,11 +437,6 @@ blank_os_window(OSWindow *os_window) { bool send_cell_data_to_gpu(ssize_t vao_idx, ssize_t gvao_idx, GLfloat xstart, GLfloat ystart, GLfloat dx, GLfloat dy, Screen *screen, OSWindow *os_window) { bool changed = false; - if (os_window->clear_count < 2) { - os_window->clear_count++; - blank_os_window(os_window); - changed = true; - } if (os_window->fonts_data) { if (cell_prepare_to_render(vao_idx, gvao_idx, screen, xstart, ystart, dx, dy, os_window->fonts_data)) changed = true; }