From 1f07fa766eca61aec147b7619d13c20f7273b700 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 10 Dec 2025 08:55:06 +0530 Subject: [PATCH] Simplify API --- kitty/gl.c | 6 +++--- kitty/gl.h | 2 +- kitty/shaders.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/kitty/gl.c b/kitty/gl.c index 9e593449d..b350071e8 100644 --- a/kitty/gl.c +++ b/kitty/gl.c @@ -513,9 +513,9 @@ map_vao_buffer_for_write_only(ssize_t vao_idx, size_t bufnum, int offset, unsign } void* -alloc_and_map_vao_buffer(ssize_t vao_idx, GLsizeiptr size, size_t bufnum, GLenum usage, GLenum access) { - ssize_t buf_idx = alloc_vao_buffer(vao_idx, size, bufnum, usage); - return map_buffer(buf_idx, access); +alloc_and_map_vao_buffer(ssize_t vao_idx, GLsizeiptr size, size_t bufnum, bool frequently_updated) { + ssize_t buf_idx = alloc_vao_buffer(vao_idx, size, bufnum, frequently_updated ? GL_STREAM_DRAW : GL_STATIC_DRAW); + return map_buffer(buf_idx, GL_WRITE_ONLY); } void diff --git a/kitty/gl.h b/kitty/gl.h index 99c2a00ef..809c78a31 100644 --- a/kitty/gl.h +++ b/kitty/gl.h @@ -52,7 +52,7 @@ ssize_t create_vao(void); size_t add_buffer_to_vao(ssize_t vao_idx, GLenum usage); void add_attribute_to_vao(int p, ssize_t vao_idx, const char *name, GLint size, GLenum data_type, GLsizei stride, void *offset, GLuint divisor); ssize_t alloc_vao_buffer(ssize_t vao_idx, GLsizeiptr size, size_t bufnum, GLenum usage); -void* alloc_and_map_vao_buffer(ssize_t vao_idx, GLsizeiptr size, size_t bufnum, GLenum usage, GLenum access); +void* alloc_and_map_vao_buffer(ssize_t vao_idx, GLsizeiptr size, size_t bufnum, bool frequently_updated); void unmap_vao_buffer(ssize_t vao_idx, size_t bufnum); void* map_vao_buffer(ssize_t vao_idx, size_t bufnum, GLenum access); void* map_vao_buffer_for_write_only(ssize_t vao_idx, size_t bufnum, int offset, unsigned size); diff --git a/kitty/shaders.c b/kitty/shaders.c index b72f9fb9e..d0b698bf9 100644 --- a/kitty/shaders.c +++ b/kitty/shaders.c @@ -574,7 +574,7 @@ cell_prepare_to_render(ssize_t vao_idx, Screen *screen, FONTS_DATA_HANDLE fonts_ #define update_cell_data { \ sz = sizeof(GPUCell) * screen->lines * screen->columns; \ - address = alloc_and_map_vao_buffer(vao_idx, sz, cell_data_buffer, GL_STREAM_DRAW, GL_WRITE_ONLY); \ + address = alloc_and_map_vao_buffer(vao_idx, sz, cell_data_buffer, true); \ screen_update_cell_data(screen, address, fonts_data, disable_ligatures && cursor_pos_changed); \ unmap_vao_buffer(vao_idx, cell_data_buffer); address = NULL; \ changed = true; \ @@ -586,7 +586,7 @@ cell_prepare_to_render(ssize_t vao_idx, Screen *screen, FONTS_DATA_HANDLE fonts_ #define update_selection_data { \ sz = (size_t)screen->lines * screen->columns; \ - address = alloc_and_map_vao_buffer(vao_idx, sz, selection_buffer, GL_STREAM_DRAW, GL_WRITE_ONLY); \ + address = alloc_and_map_vao_buffer(vao_idx, sz, selection_buffer, true); \ screen_apply_selection(screen, address, sz); \ unmap_vao_buffer(vao_idx, selection_buffer); address = NULL; \ changed = true; \ @@ -1216,7 +1216,7 @@ draw_borders(ssize_t vao_idx, unsigned int num_border_rects, BorderRect *rect_bu if (has_background_image) background_opacity = OPT(background_tint) * OPT(background_tint_gaps); if (rect_data_is_dirty) { const size_t sz = sizeof(BorderRect) * num_border_rects; - void *borders_buf_address = alloc_and_map_vao_buffer(vao_idx, sz, 0, GL_STATIC_DRAW, GL_WRITE_ONLY); + void *borders_buf_address = alloc_and_map_vao_buffer(vao_idx, sz, 0, false); if (borders_buf_address) memcpy(borders_buf_address, rect_buf, sz); unmap_vao_buffer(vao_idx, 0); }