diff --git a/kitty/fonts.c b/kitty/fonts.c index b4ca3938c..8c3d13f16 100644 --- a/kitty/fonts.c +++ b/kitty/fonts.c @@ -640,22 +640,22 @@ static GlyphRenderScratch global_glyph_render_scratch = {0}; static inline void render_group(FontGroup *fg, unsigned int num_cells, unsigned int num_glyphs, CPUCell *cpu_cells, GPUCell *gpu_cells, hb_glyph_info_t *info, hb_glyph_position_t *positions, Font *font, glyph_index *glyphs, unsigned glyph_count, bool center_glyph) { -#define sprite_positions global_glyph_render_scratch.sprite_positions +#define sp global_glyph_render_scratch.sprite_positions int error = 0; bool all_rendered = true; bool is_infinite_ligature = num_cells > 9 && num_glyphs == num_cells; for (unsigned i = 0, ligature_index = 0; i < num_cells; i++) { bool is_repeat_glyph = is_infinite_ligature && i > 1 && i + 1 < num_cells && glyphs[i] == glyphs[i-1] && glyphs[i] == glyphs[i-2] && glyphs[i] == glyphs[i+1]; if (is_repeat_glyph) { - sprite_positions[i] = sprite_positions[i-1]; + sp[i] = sp[i-1]; } else { - sprite_positions[i] = sprite_position_for(fg, font, glyphs, glyph_count, ligature_index++, &error); + sp[i] = sprite_position_for(fg, font, glyphs, glyph_count, ligature_index++, &error); } if (error != 0) { sprite_map_set_error(error); PyErr_Print(); return; } - if (!sprite_positions[i]->rendered) all_rendered = false; + if (!sp[i]->rendered) all_rendered = false; } if (all_rendered) { - for (unsigned i = 0; i < num_cells; i++) { set_cell_sprite(gpu_cells + i, sprite_positions[i]); } + for (unsigned i = 0; i < num_cells; i++) { set_cell_sprite(gpu_cells + i, sp[i]); } return; } @@ -665,15 +665,15 @@ render_group(FontGroup *fg, unsigned int num_cells, unsigned int num_glyphs, CPU if (PyErr_Occurred()) PyErr_Print(); for (unsigned i = 0; i < num_cells; i++) { - if (!sprite_positions[i]->rendered) { - sprite_positions[i]->rendered = true; - sprite_positions[i]->colored = was_colored; + if (!sp[i]->rendered) { + sp[i]->rendered = true; + sp[i]->colored = was_colored; pixel *buf = num_cells == 1 ? fg->canvas.buf : extract_cell_from_canvas(fg, i, num_cells); - current_send_sprite_to_gpu((FONTS_DATA_HANDLE)fg, sprite_positions[i]->x, sprite_positions[i]->y, sprite_positions[i]->z, buf); + current_send_sprite_to_gpu((FONTS_DATA_HANDLE)fg, sp[i]->x, sp[i]->y, sp[i]->z, buf); } - set_cell_sprite(gpu_cells + i, sprite_positions[i]); + set_cell_sprite(gpu_cells + i, sp[i]); } -#undef sprite_positions +#undef sp } typedef struct {