From bbc140e020a4490f0505abded5eac63ede6b7c97 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 21 Nov 2017 17:05:39 +0530 Subject: [PATCH] Only enable GL_BLEND when actually needed --- kitty/gl.h | 4 +--- kitty/glfw.c | 4 +--- kitty/shaders.c | 2 ++ 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/kitty/gl.h b/kitty/gl.h index aefdec151..3cd01a413 100644 --- a/kitty/gl.h +++ b/kitty/gl.h @@ -44,10 +44,9 @@ check_for_gl_error(const char *name, void UNUSED *funcptr, int UNUSED len_args, } } -static bool glad_loaded = false; - void gl_init() { + static bool glad_loaded = false; if (!glad_loaded) { if (!init_glad((GLADloadproc) glfwGetProcAddress, global_state.debug_gl)) { fatal("Loading the OpenGL library failed"); @@ -61,7 +60,6 @@ gl_init() { #undef ARB_TEST glad_loaded = true; } - glEnable(GL_BLEND); } void diff --git a/kitty/glfw.c b/kitty/glfw.c index aad92d88b..509f313b2 100644 --- a/kitty/glfw.c +++ b/kitty/glfw.c @@ -209,8 +209,6 @@ create_os_window(PyObject UNUSED *self, PyObject *args) { glfwWindowHint(GLFW_SAMPLES, 0); #ifdef __APPLE__ if (OPT(macos_hide_titlebar)) glfwWindowHint(GLFW_DECORATED, false); - // OS X cannot handle 16bit stencil buffers - glfwWindowHint(GLFW_STENCIL_BITS, 8); #endif standard_cursor = glfwCreateStandardCursor(GLFW_IBEAM_CURSOR); @@ -238,8 +236,8 @@ create_os_window(PyObject UNUSED *self, PyObject *args) { if (x != -1 && y != -1) glfwSetWindowPos(glfw_window, x, y); current_os_window_ctx = glfw_window; glfwSwapInterval(swap_interval); // a value of 1 makes mouse selection laggy - gl_init(); if (is_first_window) { + gl_init(); PyObject *ret = PyObject_CallFunction(load_programs, NULL); if (ret == NULL) return NULL; Py_DECREF(ret); diff --git a/kitty/shaders.c b/kitty/shaders.c index 9000bc26b..4ffb925d4 100644 --- a/kitty/shaders.c +++ b/kitty/shaders.c @@ -308,6 +308,7 @@ draw_all_cells(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen) { static void draw_cells_interleaved(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen) { + glEnable(GL_BLEND); bind_program(CELL_BACKGROUND_PROGRAM); glDrawArraysInstanced(GL_TRIANGLE_FAN, 0, 4, screen->lines * screen->columns); @@ -321,6 +322,7 @@ draw_cells_interleaved(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen) { glDrawArraysInstanced(GL_TRIANGLE_FAN, 0, 4, screen->lines * screen->columns); if (screen->grman->num_of_positive_refs) draw_graphics(vao_idx, gvao_idx, screen->grman->render_data, screen->grman->num_of_negative_refs, screen->grman->num_of_positive_refs); + glDisable(GL_BLEND); } void