Only enable GL_BLEND when actually needed

This commit is contained in:
Kovid Goyal 2017-11-21 17:05:39 +05:30
parent 2bcbcfff44
commit bbc140e020
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 4 additions and 6 deletions

View File

@ -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

View File

@ -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);

View File

@ -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