diff --git a/kitty/borders.py b/kitty/borders.py index fc0d4a624..98868eba6 100644 --- a/kitty/borders.py +++ b/kitty/borders.py @@ -3,12 +3,14 @@ # License: GPL v3 Copyright: 2016, Kovid Goyal from ctypes import addressof +from functools import partial from itertools import chain from threading import Lock -from functools import partial from .constants import GLfloat, GLint, GLuint, viewport_size -from .fast_data_types import GL_TRIANGLE_FAN, glMultiDrawArrays, glUniform3fv +from .fast_data_types import ( + GL_STATIC_DRAW, GL_TRIANGLE_FAN, glMultiDrawArrays, glUniform3fv +) from .shaders import ShaderProgram from .utils import pt_to_px @@ -53,7 +55,7 @@ void main() { self.vao_id = self.add_vertex_arrays(self.vertex_array('rect')) def send_data(self, data): - self.send_vertex_data(self.vao_id, data) + self.send_vertex_data(self.vao_id, data, usage=GL_STATIC_DRAW) def set_colors(self, color_buf): glUniform3fv(self.uniform_location('colors'), 3, addressof(color_buf)) diff --git a/kitty/char_grid.py b/kitty/char_grid.py index 9dff39db1..8f3d80fb6 100644 --- a/kitty/char_grid.py +++ b/kitty/char_grid.py @@ -15,9 +15,9 @@ from .constants import ( ) from .fast_data_types import ( CURSOR_BEAM, CURSOR_BLOCK, CURSOR_UNDERLINE, DATA_CELL_SIZE, GL_BLEND, - GL_LINE_LOOP, GL_STREAM_DRAW, GL_TRIANGLE_FAN, GL_UNSIGNED_INT, - ColorProfile, glDisable, glDrawArrays, glDrawArraysInstanced, glEnable, - glUniform1i, glUniform2f, glUniform2i, glUniform2ui, glUniform4f + GL_LINE_LOOP, GL_TRIANGLE_FAN, GL_UNSIGNED_INT, ColorProfile, glDisable, + glDrawArrays, glDrawArraysInstanced, glEnable, glUniform1i, glUniform2f, + glUniform2i, glUniform2ui, glUniform4f ) from .rgb import to_color from .shaders import ShaderProgram, load_shaders @@ -373,7 +373,7 @@ class CharGrid: bg = bg >> 8 if bg & 2 else self.highlight_bg self.screen.apply_selection(addressof(buf), start[0], start[1], end[0], end[1], fg, bg) if self.render_buf_is_dirty or self.last_rendered_selection != sel: - cell_program.send_vertex_data(self.vao_id, buf, usage=GL_STREAM_DRAW) + cell_program.send_vertex_data(self.vao_id, buf) self.render_buf_is_dirty = False self.last_rendered_selection = sel return sg diff --git a/kitty/shaders.py b/kitty/shaders.py index 7bcd151b0..b189e27d6 100644 --- a/kitty/shaders.py +++ b/kitty/shaders.py @@ -13,21 +13,20 @@ from threading import Lock from .fast_data_types import ( BOLD, GL_ARRAY_BUFFER, GL_CLAMP_TO_EDGE, GL_COMPILE_STATUS, GL_FLOAT, GL_FRAGMENT_SHADER, GL_LINK_STATUS, GL_MAX_ARRAY_TEXTURE_LAYERS, - GL_MAX_TEXTURE_SIZE, GL_NEAREST, GL_R8, GL_RED, GL_STATIC_DRAW, - GL_STREAM_DRAW, GL_TEXTURE0, GL_TEXTURE_2D_ARRAY, - GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, - GL_TEXTURE_WRAP_T, GL_TRUE, GL_UNPACK_ALIGNMENT, GL_UNSIGNED_BYTE, - GL_VERTEX_SHADER, ITALIC, SpriteMap, copy_image_sub_data, glActiveTexture, - glAttachShader, glBindBuffer, glBindTexture, glBindVertexArray, - glCompileShader, glCopyImageSubData, glCreateProgram, glCreateShader, - glDeleteBuffer, glDeleteProgram, glDeleteShader, glDeleteTexture, - glDeleteVertexArray, glEnableVertexAttribArray, glGenBuffers, - glGenTextures, glGenVertexArrays, glGetAttribLocation, glGetBufferSubData, - glGetIntegerv, glGetProgramInfoLog, glGetProgramiv, glGetShaderInfoLog, - glGetShaderiv, glGetUniformLocation, glLinkProgram, glPixelStorei, - glShaderSource, glTexParameteri, glTexStorage3D, - glTexSubImage3D, glUseProgram, glVertexAttribDivisor, - glVertexAttribPointer, replace_or_create_buffer + GL_MAX_TEXTURE_SIZE, GL_NEAREST, GL_R8, GL_RED, GL_STREAM_DRAW, + GL_TEXTURE0, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, + GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TRUE, + GL_UNPACK_ALIGNMENT, GL_UNSIGNED_BYTE, GL_VERTEX_SHADER, ITALIC, SpriteMap, + copy_image_sub_data, glActiveTexture, glAttachShader, glBindBuffer, + glBindTexture, glBindVertexArray, glCompileShader, glCopyImageSubData, + glCreateProgram, glCreateShader, glDeleteBuffer, glDeleteProgram, + glDeleteShader, glDeleteTexture, glDeleteVertexArray, + glEnableVertexAttribArray, glGenBuffers, glGenTextures, glGenVertexArrays, + glGetAttribLocation, glGetBufferSubData, glGetIntegerv, + glGetProgramInfoLog, glGetProgramiv, glGetShaderInfoLog, glGetShaderiv, + glGetUniformLocation, glLinkProgram, glPixelStorei, glShaderSource, + glTexParameteri, glTexStorage3D, glTexSubImage3D, glUseProgram, + glVertexAttribDivisor, glVertexAttribPointer, replace_or_create_buffer ) from .fonts.render import render_cell from .utils import safe_print @@ -281,7 +280,7 @@ class ShaderProgram: # {{{ glDeleteVertexArray(vao_id) buffer_manager.delete(buf_id) - def send_vertex_data(self, vao_id, data, usage=GL_STATIC_DRAW): + def send_vertex_data(self, vao_id, data, usage=GL_STREAM_DRAW): bufid = self.vertex_arrays[vao_id] buffer_manager.set_data(bufid, data, usage=usage) diff --git a/kitty/tabs.py b/kitty/tabs.py index 6826dd41a..fd0cb6016 100644 --- a/kitty/tabs.py +++ b/kitty/tabs.py @@ -16,8 +16,7 @@ from .constants import ( shell_path, viewport_size ) from .fast_data_types import ( - DATA_CELL_SIZE, DECAWM, GL_STREAM_DRAW, ColorProfile, Screen, - glfw_post_empty_event + DATA_CELL_SIZE, DECAWM, ColorProfile, Screen, glfw_post_empty_event ) from .layout import Rect, all_layouts from .utils import color_as_int @@ -344,7 +343,7 @@ class TabManager: sprites.render_dirty_cells() if self.vao_id is None: self.vao_id = cell_program.create_sprite_map() - cell_program.send_vertex_data(self.vao_id, self.sprite_map, usage=GL_STREAM_DRAW) + cell_program.send_vertex_data(self.vao_id, self.sprite_map) def activate_tab_at(self, x): x = (x - self.window_geometry.left) // cell_size.width