mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 13:28:40 +00:00
simplify font cache run building api, since it is now cahced
This commit is contained in:
+2
-2
@@ -171,7 +171,7 @@ dr_fruns_from_fstrs(Arena *arena, F32 tab_size_px, DR_FStrList *strs)
|
|||||||
for(DR_FStrNode *n = strs->first; n != 0; n = n->next)
|
for(DR_FStrNode *n = strs->first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
DR_FRunNode *dst_n = push_array(arena, DR_FRunNode, 1);
|
DR_FRunNode *dst_n = push_array(arena, DR_FRunNode, 1);
|
||||||
dst_n->v.run = fnt_push_run_from_string(arena, n->v.params.font, n->v.params.size, base_align_px, tab_size_px, n->v.params.raster_flags, n->v.string);
|
dst_n->v.run = fnt_run_from_string(n->v.params.font, n->v.params.size, base_align_px, tab_size_px, n->v.params.raster_flags, n->v.string);
|
||||||
dst_n->v.color = n->v.params.color;
|
dst_n->v.color = n->v.params.color;
|
||||||
dst_n->v.underline_thickness = n->v.params.underline_thickness;
|
dst_n->v.underline_thickness = n->v.params.underline_thickness;
|
||||||
dst_n->v.strikethrough_thickness = n->v.params.strikethrough_thickness;
|
dst_n->v.strikethrough_thickness = n->v.params.strikethrough_thickness;
|
||||||
@@ -712,7 +712,7 @@ internal void
|
|||||||
dr_text(FNT_Tag font, F32 size, F32 base_align_px, F32 tab_size_px, FNT_RasterFlags flags, Vec2F32 p, Vec4F32 color, String8 string)
|
dr_text(FNT_Tag font, F32 size, F32 base_align_px, F32 tab_size_px, FNT_RasterFlags flags, Vec2F32 p, Vec4F32 color, String8 string)
|
||||||
{
|
{
|
||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
FNT_Run run = fnt_push_run_from_string(scratch.arena, font, size, base_align_px, tab_size_px, flags, string);
|
FNT_Run run = fnt_run_from_string(font, size, base_align_px, tab_size_px, flags, string);
|
||||||
dr_text_run(p, color, run);
|
dr_text_run(p, color, run);
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -568,7 +568,7 @@ fnt_hash2style_from_tag_size_flags(FNT_Tag tag, F32 size, FNT_RasterFlags flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal FNT_Run
|
internal FNT_Run
|
||||||
fnt_push_run_from_string(Arena *arena, FNT_Tag tag, F32 size, F32 base_align_px, F32 tab_size_px, FNT_RasterFlags flags, String8 string)
|
fnt_run_from_string(FNT_Tag tag, F32 size, F32 base_align_px, F32 tab_size_px, FNT_RasterFlags flags, String8 string)
|
||||||
{
|
{
|
||||||
ProfBeginFunction();
|
ProfBeginFunction();
|
||||||
|
|
||||||
@@ -695,7 +695,7 @@ fnt_push_run_from_string(Arena *arena, FNT_Tag tag, F32 size, F32 base_align_px,
|
|||||||
if(info == 0)
|
if(info == 0)
|
||||||
{
|
{
|
||||||
ProfBegin("no info found -> miss... fill this hash in the cache");
|
ProfBegin("no info found -> miss... fill this hash in the cache");
|
||||||
Temp scratch = scratch_begin(&arena, 1);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
|
|
||||||
// rjf: grab font handle for this tag if we don't have one already
|
// rjf: grab font handle for this tag if we don't have one already
|
||||||
if(font_handle_mapped_on_miss == 0)
|
if(font_handle_mapped_on_miss == 0)
|
||||||
@@ -902,7 +902,7 @@ fnt_wrapped_string_lines_from_font_size_string_max(Arena *arena, FNT_Tag font, F
|
|||||||
String8List list = {0};
|
String8List list = {0};
|
||||||
{
|
{
|
||||||
Temp scratch = scratch_begin(&arena, 1);
|
Temp scratch = scratch_begin(&arena, 1);
|
||||||
FNT_Run run = fnt_push_run_from_string(scratch.arena, font, size, base_align_px, tab_size_px, 0, string);
|
FNT_Run run = fnt_run_from_string(font, size, base_align_px, tab_size_px, 0, string);
|
||||||
F32 off_px = 0;
|
F32 off_px = 0;
|
||||||
U64 off_bytes = 0;
|
U64 off_bytes = 0;
|
||||||
U64 line_start_off_bytes = 0;
|
U64 line_start_off_bytes = 0;
|
||||||
@@ -1015,7 +1015,7 @@ fnt_dim_from_tag_size_string(FNT_Tag tag, F32 size, F32 base_align_px, F32 tab_s
|
|||||||
ProfBeginFunction();
|
ProfBeginFunction();
|
||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
Vec2F32 result = {0};
|
Vec2F32 result = {0};
|
||||||
FNT_Run run = fnt_push_run_from_string(scratch.arena, tag, size, base_align_px, tab_size_px, 0, string);
|
FNT_Run run = fnt_run_from_string(tag, size, base_align_px, tab_size_px, 0, string);
|
||||||
result = run.dim;
|
result = run.dim;
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
ProfEnd();
|
ProfEnd();
|
||||||
@@ -1052,7 +1052,7 @@ fnt_char_pos_from_tag_size_string_p(FNT_Tag tag, F32 size, F32 base_align_px, F3
|
|||||||
F32 best_offset_px = inf32();
|
F32 best_offset_px = inf32();
|
||||||
U64 offset_bytes = 0;
|
U64 offset_bytes = 0;
|
||||||
F32 offset_px = 0.f;
|
F32 offset_px = 0.f;
|
||||||
FNT_Run run = fnt_push_run_from_string(scratch.arena, tag, size, base_align_px, tab_size_px, 0, string);
|
FNT_Run run = fnt_run_from_string(tag, size, base_align_px, tab_size_px, 0, string);
|
||||||
for(U64 idx = 0; idx <= run.pieces.count; idx += 1)
|
for(U64 idx = 0; idx <= run.pieces.count; idx += 1)
|
||||||
{
|
{
|
||||||
F32 this_piece_offset_px = abs_f32(offset_px - p);
|
F32 this_piece_offset_px = abs_f32(offset_px - p);
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ internal FNT_PieceArray fnt_piece_array_copy(Arena *arena, FNT_PieceArray *src);
|
|||||||
|
|
||||||
//- rjf: base cache lookups
|
//- rjf: base cache lookups
|
||||||
internal FNT_Hash2StyleRasterCacheNode *fnt_hash2style_from_tag_size_flags(FNT_Tag tag, F32 size, FNT_RasterFlags flags);
|
internal FNT_Hash2StyleRasterCacheNode *fnt_hash2style_from_tag_size_flags(FNT_Tag tag, F32 size, FNT_RasterFlags flags);
|
||||||
internal FNT_Run fnt_push_run_from_string(Arena *arena, FNT_Tag tag, F32 size, F32 base_align_px, F32 tab_size_px, FNT_RasterFlags flags, String8 string);
|
internal FNT_Run fnt_run_from_string(FNT_Tag tag, F32 size, F32 base_align_px, F32 tab_size_px, FNT_RasterFlags flags, String8 string);
|
||||||
|
|
||||||
//- rjf: helpers
|
//- rjf: helpers
|
||||||
internal String8List fnt_wrapped_string_lines_from_font_size_string_max(Arena *arena, FNT_Tag font, F32 size, F32 base_align_px, F32 tab_size_px, String8 string, F32 max);
|
internal String8List fnt_wrapped_string_lines_from_font_size_string_max(Arena *arena, FNT_Tag font, F32 size, F32 base_align_px, F32 tab_size_px, String8 string, F32 max);
|
||||||
|
|||||||
+21
-26
@@ -5532,36 +5532,31 @@ rd_window_frame(void)
|
|||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
RD_FontSlot slot = english_font_slots[idx];
|
RD_FontSlot slot = english_font_slots[idx];
|
||||||
String8 sample_text = str8_lit("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&*()-_+=[{]}\\|;:'\",<.>/?");
|
String8 sample_text = str8_lit("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&*()-_+=[{]}\\|;:'\",<.>/?");
|
||||||
fnt_push_run_from_string(scratch.arena,
|
fnt_run_from_string(rd_font_from_slot(slot),
|
||||||
rd_font_from_slot(slot),
|
font_size,
|
||||||
font_size,
|
0, 0, 0,
|
||||||
0, 0, 0,
|
sample_text);
|
||||||
sample_text);
|
fnt_run_from_string(rd_font_from_slot(slot),
|
||||||
fnt_push_run_from_string(scratch.arena,
|
font_size,
|
||||||
rd_font_from_slot(slot),
|
0, 0, 0,
|
||||||
font_size,
|
sample_text);
|
||||||
0, 0, 0,
|
|
||||||
sample_text);
|
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}
|
}
|
||||||
for(RD_IconKind icon_kind = RD_IconKind_Null; icon_kind < RD_IconKind_COUNT; icon_kind = (RD_IconKind)(icon_kind+1))
|
for(RD_IconKind icon_kind = RD_IconKind_Null; icon_kind < RD_IconKind_COUNT; icon_kind = (RD_IconKind)(icon_kind+1))
|
||||||
{
|
{
|
||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
fnt_push_run_from_string(scratch.arena,
|
fnt_run_from_string(rd_font_from_slot(icon_font_slot),
|
||||||
rd_font_from_slot(icon_font_slot),
|
font_size,
|
||||||
font_size,
|
0, 0, FNT_RasterFlag_Smooth,
|
||||||
0, 0, FNT_RasterFlag_Smooth,
|
rd_icon_kind_text_table[icon_kind]);
|
||||||
rd_icon_kind_text_table[icon_kind]);
|
fnt_run_from_string(rd_font_from_slot(icon_font_slot),
|
||||||
fnt_push_run_from_string(scratch.arena,
|
font_size,
|
||||||
rd_font_from_slot(icon_font_slot),
|
0, 0, FNT_RasterFlag_Smooth,
|
||||||
font_size,
|
rd_icon_kind_text_table[icon_kind]);
|
||||||
0, 0, FNT_RasterFlag_Smooth,
|
fnt_run_from_string(rd_font_from_slot(icon_font_slot),
|
||||||
rd_icon_kind_text_table[icon_kind]);
|
font_size,
|
||||||
fnt_push_run_from_string(scratch.arena,
|
0, 0, FNT_RasterFlag_Smooth,
|
||||||
rd_font_from_slot(icon_font_slot),
|
rd_icon_kind_text_table[icon_kind]);
|
||||||
font_size,
|
|
||||||
0, 0, FNT_RasterFlag_Smooth,
|
|
||||||
rd_icon_kind_text_table[icon_kind]);
|
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8947,7 +8942,7 @@ rd_window_frame(void)
|
|||||||
ellipses_raster_flags = box->display_fstrs.last->v.params.raster_flags;
|
ellipses_raster_flags = box->display_fstrs.last->v.params.raster_flags;
|
||||||
}
|
}
|
||||||
max_x = (box->rect.x1-text_position.x);
|
max_x = (box->rect.x1-text_position.x);
|
||||||
ellipses_run = fnt_push_run_from_string(scratch.arena, ellipses_font, ellipses_size, 0, box->tab_size, ellipses_raster_flags, str8_lit("..."));
|
ellipses_run = fnt_run_from_string(ellipses_font, ellipses_size, 0, box->tab_size, ellipses_raster_flags, str8_lit("..."));
|
||||||
}
|
}
|
||||||
if(box->flags & UI_BoxFlag_HasFuzzyMatchRanges) UI_TagF("match")
|
if(box->flags & UI_BoxFlag_HasFuzzyMatchRanges) UI_TagF("match")
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1164,7 +1164,7 @@ internal UI_BOX_CUSTOM_DRAW(rd_bp_box_draw_extensions)
|
|||||||
{
|
{
|
||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
Vec4F32 color = ui_color_from_name(str8_lit("text"));
|
Vec4F32 color = ui_color_from_name(str8_lit("text"));
|
||||||
FNT_Run run = fnt_push_run_from_string(scratch.arena, rd_font_from_slot(RD_FontSlot_Code), box->font_size*0.8f, 0, 0, FNT_RasterFlag_Smooth, str8_lit("if"));
|
FNT_Run run = fnt_run_from_string(rd_font_from_slot(RD_FontSlot_Code), box->font_size*0.8f, 0, 0, FNT_RasterFlag_Smooth, str8_lit("if"));
|
||||||
Vec2F32 p = center_2f32(box->rect);
|
Vec2F32 p = center_2f32(box->rect);
|
||||||
p.x -= run.dim.x*0.5f;
|
p.x -= run.dim.x*0.5f;
|
||||||
p.y += run.descent;
|
p.y += run.descent;
|
||||||
@@ -1177,7 +1177,7 @@ internal UI_BOX_CUSTOM_DRAW(rd_bp_box_draw_extensions)
|
|||||||
{
|
{
|
||||||
Temp scratch = scratch_begin(0, 0);
|
Temp scratch = scratch_begin(0, 0);
|
||||||
Vec4F32 color = ui_color_from_name(str8_lit("breakpoint"));
|
Vec4F32 color = ui_color_from_name(str8_lit("breakpoint"));
|
||||||
FNT_Run run = fnt_push_run_from_string(scratch.arena, rd_font_from_slot(RD_FontSlot_Icons), box->font_size*0.95f, 0, 0, FNT_RasterFlag_Smooth, str8_lit("x"));
|
FNT_Run run = fnt_run_from_string(rd_font_from_slot(RD_FontSlot_Icons), box->font_size*0.95f, 0, 0, FNT_RasterFlag_Smooth, str8_lit("x"));
|
||||||
Vec2F32 box_dim = dim_2f32(box->rect);
|
Vec2F32 box_dim = dim_2f32(box->rect);
|
||||||
Vec2F32 p = center_2f32(box->rect);
|
Vec2F32 p = center_2f32(box->rect);
|
||||||
p.x += box_dim.x*0.1f;
|
p.x += box_dim.x*0.1f;
|
||||||
|
|||||||
Reference in New Issue
Block a user