Change default usage mode to GL_STREAM_DRAW

This commit is contained in:
Kovid Goyal 2017-08-22 18:10:28 +05:30
parent adbce71fb4
commit 1c56de5605
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
4 changed files with 26 additions and 26 deletions

View File

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

View File

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

View File

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

View File

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