mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 14:18:26 +02:00
Simplify API
This commit is contained in:
@@ -513,9 +513,9 @@ map_vao_buffer_for_write_only(ssize_t vao_idx, size_t bufnum, int offset, unsign
|
|||||||
}
|
}
|
||||||
|
|
||||||
void*
|
void*
|
||||||
alloc_and_map_vao_buffer(ssize_t vao_idx, GLsizeiptr size, size_t bufnum, GLenum usage, GLenum 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, usage);
|
ssize_t buf_idx = alloc_vao_buffer(vao_idx, size, bufnum, frequently_updated ? GL_STREAM_DRAW : GL_STATIC_DRAW);
|
||||||
return map_buffer(buf_idx, access);
|
return map_buffer(buf_idx, GL_WRITE_ONLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ ssize_t create_vao(void);
|
|||||||
size_t add_buffer_to_vao(ssize_t vao_idx, GLenum usage);
|
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);
|
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);
|
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 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(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);
|
void* map_vao_buffer_for_write_only(ssize_t vao_idx, size_t bufnum, int offset, unsigned size);
|
||||||
|
|||||||
@@ -574,7 +574,7 @@ cell_prepare_to_render(ssize_t vao_idx, Screen *screen, FONTS_DATA_HANDLE fonts_
|
|||||||
|
|
||||||
#define update_cell_data { \
|
#define update_cell_data { \
|
||||||
sz = sizeof(GPUCell) * screen->lines * screen->columns; \
|
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); \
|
screen_update_cell_data(screen, address, fonts_data, disable_ligatures && cursor_pos_changed); \
|
||||||
unmap_vao_buffer(vao_idx, cell_data_buffer); address = NULL; \
|
unmap_vao_buffer(vao_idx, cell_data_buffer); address = NULL; \
|
||||||
changed = true; \
|
changed = true; \
|
||||||
@@ -586,7 +586,7 @@ cell_prepare_to_render(ssize_t vao_idx, Screen *screen, FONTS_DATA_HANDLE fonts_
|
|||||||
|
|
||||||
#define update_selection_data { \
|
#define update_selection_data { \
|
||||||
sz = (size_t)screen->lines * screen->columns; \
|
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); \
|
screen_apply_selection(screen, address, sz); \
|
||||||
unmap_vao_buffer(vao_idx, selection_buffer); address = NULL; \
|
unmap_vao_buffer(vao_idx, selection_buffer); address = NULL; \
|
||||||
changed = true; \
|
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 (has_background_image) background_opacity = OPT(background_tint) * OPT(background_tint_gaps);
|
||||||
if (rect_data_is_dirty) {
|
if (rect_data_is_dirty) {
|
||||||
const size_t sz = sizeof(BorderRect) * num_border_rects;
|
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);
|
if (borders_buf_address) memcpy(borders_buf_address, rect_buf, sz);
|
||||||
unmap_vao_buffer(vao_idx, 0);
|
unmap_vao_buffer(vao_idx, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user