Change default usage mode to GL_STREAM_DRAW
This commit is contained in:
parent
adbce71fb4
commit
1c56de5605
@ -3,12 +3,14 @@
|
||||
# License: GPL v3 Copyright: 2016, Kovid Goyal <kovid at kovidgoyal.net>
|
||||
|
||||
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))
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user