Ensure sprite map size tracking is always correct
This commit is contained in:
parent
7e79aac275
commit
05f5a05c20
@ -172,8 +172,9 @@ class Sprites:
|
|||||||
|
|
||||||
def set_sprite_map(self, buf_id, data, usage=GL_STREAM_DRAW):
|
def set_sprite_map(self, buf_id, data, usage=GL_STREAM_DRAW):
|
||||||
prev_sz = self.prev_sprite_map_sizes[buf_id]
|
prev_sz = self.prev_sprite_map_sizes[buf_id]
|
||||||
self.prev_sprite_map_sizes[buf_id] = new_sz = sizeof(data)
|
new_sz = sizeof(data)
|
||||||
replace_or_create_buffer(buf_id, new_sz, prev_sz, addressof(data), usage)
|
replace_or_create_buffer(buf_id, new_sz, prev_sz, addressof(data), usage)
|
||||||
|
self.prev_sprite_map_sizes[buf_id] = new_sz
|
||||||
if False:
|
if False:
|
||||||
verify_data = type(data)()
|
verify_data = type(data)()
|
||||||
glGetBufferSubData(buf_id, new_sz, 0, addressof(verify_data))
|
glGetBufferSubData(buf_id, new_sz, 0, addressof(verify_data))
|
||||||
@ -186,6 +187,7 @@ class Sprites:
|
|||||||
|
|
||||||
def destroy_sprite_map(self, buf_id):
|
def destroy_sprite_map(self, buf_id):
|
||||||
glDeleteBuffer(buf_id)
|
glDeleteBuffer(buf_id)
|
||||||
|
self.prev_sprite_map_sizes.pop(buf_id, None)
|
||||||
|
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
self.ensure_state()
|
self.ensure_state()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user