mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-08-04 14:46:03 +00:00
fix regression in slang migration that caused second OS Window to not render because shared gamma_lut UBO was only bound to first OS Window context
This commit is contained in:
parent
2e4ece5050
commit
b51da0aa7d
3 changed files with 10 additions and 2 deletions
|
|
@ -1880,6 +1880,7 @@ create_os_window(PyObject UNUSED *self, PyObject *args, PyObject *kw) {
|
|||
}
|
||||
is_first_window = false;
|
||||
}
|
||||
bind_shader_globals_to_current_context();
|
||||
OSWindow *w = add_os_window();
|
||||
w->handle = glfw_window;
|
||||
w->disallow_title_changes = disallow_override_title;
|
||||
|
|
|
|||
|
|
@ -382,9 +382,15 @@ init_cell_program(void) {
|
|||
unmap_vao_buffer(shader_globals_vao_idx, GAMMA_LUT_GLOBAL_BUFFER);
|
||||
// The border colors change on every draw, but are shared amongst all border VAOs (only one is ever drawn at a time)
|
||||
alloc_vao_buffer(shader_globals_vao_idx, border_colors.size, BORDER_COLORS_GLOBAL_BUFFER, GL_STREAM_DRAW);
|
||||
bind_vao_uniform_buffer(shader_globals_vao_idx, GAMMA_LUT_GLOBAL_BUFFER, GAMMA_LUT_BINDING_POINT);
|
||||
bind_vao_uniform_buffer(shader_globals_vao_idx, BORDER_COLORS_GLOBAL_BUFFER, BORDER_COLORS_BINDING_POINT);
|
||||
}
|
||||
bind_shader_globals_to_current_context();
|
||||
}
|
||||
|
||||
void
|
||||
bind_shader_globals_to_current_context(void) {
|
||||
if (shader_globals_vao_idx == -1) return;
|
||||
bind_vao_uniform_buffer(shader_globals_vao_idx, GAMMA_LUT_GLOBAL_BUFFER, GAMMA_LUT_BINDING_POINT);
|
||||
bind_vao_uniform_buffer(shader_globals_vao_idx, BORDER_COLORS_GLOBAL_BUFFER, BORDER_COLORS_BINDING_POINT);
|
||||
}
|
||||
|
||||
#define CELL_BUFFERS enum { cell_data_buffer, selection_buffer, uniform_buffer, color_table_buffer };
|
||||
|
|
|
|||
|
|
@ -584,6 +584,7 @@ bool drag_scroll(Window *, OSWindow*);
|
|||
void draw_borders(ssize_t vao_idx, unsigned int num_border_rects, BorderRect *rect_buf, bool rect_data_is_dirty, color_type, unsigned int, bool, OSWindow *w);
|
||||
ssize_t create_cell_vao(void);
|
||||
ssize_t create_border_vao(void);
|
||||
void bind_shader_globals_to_current_context(void);
|
||||
bool send_cell_data_to_gpu(ssize_t, Screen *, OSWindow *);
|
||||
void draw_cells(const WindowRenderData*, OSWindow *, bool, bool, bool, Window*);
|
||||
bool update_cursor_trail(CursorTrail *ct, Window *w, monotonic_t now, OSWindow *os_window);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue