mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-26 10:12:17 +02:00
Only enable GL_BLEND when actually needed
This commit is contained in:
@@ -44,10 +44,9 @@ check_for_gl_error(const char *name, void UNUSED *funcptr, int UNUSED len_args,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool glad_loaded = false;
|
|
||||||
|
|
||||||
void
|
void
|
||||||
gl_init() {
|
gl_init() {
|
||||||
|
static bool glad_loaded = false;
|
||||||
if (!glad_loaded) {
|
if (!glad_loaded) {
|
||||||
if (!init_glad((GLADloadproc) glfwGetProcAddress, global_state.debug_gl)) {
|
if (!init_glad((GLADloadproc) glfwGetProcAddress, global_state.debug_gl)) {
|
||||||
fatal("Loading the OpenGL library failed");
|
fatal("Loading the OpenGL library failed");
|
||||||
@@ -61,7 +60,6 @@ gl_init() {
|
|||||||
#undef ARB_TEST
|
#undef ARB_TEST
|
||||||
glad_loaded = true;
|
glad_loaded = true;
|
||||||
}
|
}
|
||||||
glEnable(GL_BLEND);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -209,8 +209,6 @@ create_os_window(PyObject UNUSED *self, PyObject *args) {
|
|||||||
glfwWindowHint(GLFW_SAMPLES, 0);
|
glfwWindowHint(GLFW_SAMPLES, 0);
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
if (OPT(macos_hide_titlebar)) glfwWindowHint(GLFW_DECORATED, false);
|
if (OPT(macos_hide_titlebar)) glfwWindowHint(GLFW_DECORATED, false);
|
||||||
// OS X cannot handle 16bit stencil buffers
|
|
||||||
glfwWindowHint(GLFW_STENCIL_BITS, 8);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
standard_cursor = glfwCreateStandardCursor(GLFW_IBEAM_CURSOR);
|
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);
|
if (x != -1 && y != -1) glfwSetWindowPos(glfw_window, x, y);
|
||||||
current_os_window_ctx = glfw_window;
|
current_os_window_ctx = glfw_window;
|
||||||
glfwSwapInterval(swap_interval); // a value of 1 makes mouse selection laggy
|
glfwSwapInterval(swap_interval); // a value of 1 makes mouse selection laggy
|
||||||
gl_init();
|
|
||||||
if (is_first_window) {
|
if (is_first_window) {
|
||||||
|
gl_init();
|
||||||
PyObject *ret = PyObject_CallFunction(load_programs, NULL);
|
PyObject *ret = PyObject_CallFunction(load_programs, NULL);
|
||||||
if (ret == NULL) return NULL;
|
if (ret == NULL) return NULL;
|
||||||
Py_DECREF(ret);
|
Py_DECREF(ret);
|
||||||
|
|||||||
@@ -308,6 +308,7 @@ draw_all_cells(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen) {
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
draw_cells_interleaved(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen) {
|
draw_cells_interleaved(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen) {
|
||||||
|
glEnable(GL_BLEND);
|
||||||
bind_program(CELL_BACKGROUND_PROGRAM);
|
bind_program(CELL_BACKGROUND_PROGRAM);
|
||||||
glDrawArraysInstanced(GL_TRIANGLE_FAN, 0, 4, screen->lines * screen->columns);
|
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);
|
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);
|
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
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user