Code to verify buffer uploads are working
This commit is contained in:
@@ -7,26 +7,26 @@ from ctypes import addressof, sizeof
|
|||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from threading import Lock
|
from threading import Lock
|
||||||
|
|
||||||
from .fonts.render import render_cell
|
|
||||||
from .fast_data_types import (
|
from .fast_data_types import (
|
||||||
glCreateProgram, glAttachShader, GL_FRAGMENT_SHADER, GL_VERTEX_SHADER,
|
BOLD, GL_ARRAY_BUFFER, GL_CLAMP_TO_EDGE, GL_COMPILE_STATUS, GL_FLOAT,
|
||||||
glLinkProgram, GL_TRUE, GL_LINK_STATUS, glGetProgramiv,
|
GL_FRAGMENT_SHADER, GL_LINK_STATUS, GL_MAX_ARRAY_TEXTURE_LAYERS,
|
||||||
glGetProgramInfoLog, glDeleteShader, glDeleteProgram, glGenVertexArrays,
|
GL_MAX_TEXTURE_SIZE, GL_NEAREST, GL_R8, GL_R32UI, GL_RED, GL_STATIC_DRAW,
|
||||||
glCreateShader, glShaderSource, glCompileShader, glGetShaderiv,
|
GL_STREAM_DRAW, GL_TEXTURE0, GL_TEXTURE1, GL_TEXTURE_2D_ARRAY,
|
||||||
GL_COMPILE_STATUS, glGetShaderInfoLog, glGetUniformLocation,
|
GL_TEXTURE_BUFFER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER,
|
||||||
glGetAttribLocation, glUseProgram, glBindVertexArray, GL_TEXTURE0,
|
GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TRUE, GL_UNPACK_ALIGNMENT,
|
||||||
GL_TEXTURE1, glGetIntegerv, GL_MAX_ARRAY_TEXTURE_LAYERS, glNamedBufferData,
|
GL_UNSIGNED_BYTE, GL_VERTEX_SHADER, ITALIC, SpriteMap, copy_image_sub_data,
|
||||||
GL_MAX_TEXTURE_SIZE, glDeleteTexture, GL_TEXTURE_2D_ARRAY, glGenTextures,
|
glActiveTexture, glAttachShader, glBindBuffer, glBindTexture,
|
||||||
glBindTexture, glTexParameteri, GL_CLAMP_TO_EDGE, glDeleteBuffer,
|
glBindVertexArray, glCompileShader, glCopyImageSubData, glCreateProgram,
|
||||||
GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S,
|
glCreateShader, glDeleteBuffer, glDeleteProgram, glDeleteShader,
|
||||||
GL_NEAREST, GL_TEXTURE_WRAP_T, glGenBuffers, GL_R8, GL_RED,
|
glDeleteTexture, glEnableVertexAttribArray, glGenBuffers, glGenTextures,
|
||||||
GL_UNPACK_ALIGNMENT, GL_UNSIGNED_BYTE, GL_STATIC_DRAW, GL_STREAM_DRAW,
|
glGenVertexArrays, glGetAttribLocation, glGetBufferSubData, glGetIntegerv,
|
||||||
GL_TEXTURE_BUFFER, GL_R32UI, GL_FLOAT, GL_ARRAY_BUFFER, glBindBuffer,
|
glGetProgramInfoLog, glGetProgramiv, glGetShaderInfoLog, glGetShaderiv,
|
||||||
glPixelStorei, glTexBuffer, glActiveTexture, glTexStorage3D,
|
glGetUniformLocation, glLinkProgram, glNamedBufferData, glPixelStorei,
|
||||||
glCopyImageSubData, glTexSubImage3D, ITALIC, BOLD, SpriteMap,
|
glShaderSource, glTexBuffer, glTexParameteri, glTexStorage3D,
|
||||||
glEnableVertexAttribArray, glVertexAttribPointer, copy_image_sub_data,
|
glTexSubImage3D, glUseProgram, glVertexAttribPointer,
|
||||||
replace_or_create_buffer
|
replace_or_create_buffer
|
||||||
)
|
)
|
||||||
|
from .fonts.render import render_cell
|
||||||
from .utils import safe_print
|
from .utils import safe_print
|
||||||
|
|
||||||
GL_VERSION = (3, 3)
|
GL_VERSION = (3, 3)
|
||||||
@@ -162,6 +162,11 @@ class Sprites:
|
|||||||
prev_sz, self.prev_sprite_map_sz = self.prev_sprite_map_sz, sizeof(data)
|
prev_sz, self.prev_sprite_map_sz = self.prev_sprite_map_sz, sizeof(data)
|
||||||
replace_or_create_buffer(buf_id, self.prev_sprite_map_sz, prev_sz, addressof(data), usage)
|
replace_or_create_buffer(buf_id, self.prev_sprite_map_sz, prev_sz, addressof(data), usage)
|
||||||
self.bind_sprite_map(buf_id)
|
self.bind_sprite_map(buf_id)
|
||||||
|
if False:
|
||||||
|
verify_data = type(data)()
|
||||||
|
glGetBufferSubData(buf_id, self.prev_sprite_map_sz, 0, addressof(verify_data))
|
||||||
|
if list(data) != list(verify_data):
|
||||||
|
raise RuntimeError('OpenGL failed to upload to buffer')
|
||||||
|
|
||||||
def bind_sprite_map(self, buf_id):
|
def bind_sprite_map(self, buf_id):
|
||||||
glBindBuffer(GL_TEXTURE_BUFFER, buf_id)
|
glBindBuffer(GL_TEXTURE_BUFFER, buf_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user