mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-15 16:42:23 -07: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)
|
||||
{
|
||||
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.underline_thickness = n->v.params.underline_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)
|
||||
{
|
||||
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);
|
||||
scratch_end(scratch);
|
||||
}
|
||||
|
||||
@@ -568,7 +568,7 @@ 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)
|
||||
fnt_run_from_string(FNT_Tag tag, F32 size, F32 base_align_px, F32 tab_size_px, FNT_RasterFlags flags, String8 string)
|
||||
{
|
||||
ProfBeginFunction();
|
||||
|
||||
@@ -695,7 +695,7 @@ fnt_push_run_from_string(Arena *arena, FNT_Tag tag, F32 size, F32 base_align_px,
|
||||
if(info == 0)
|
||||
{
|
||||
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
|
||||
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};
|
||||
{
|
||||
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;
|
||||
U64 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();
|
||||
Temp scratch = scratch_begin(0, 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;
|
||||
scratch_end(scratch);
|
||||
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();
|
||||
U64 offset_bytes = 0;
|
||||
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)
|
||||
{
|
||||
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
|
||||
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
|
||||
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);
|
||||
RD_FontSlot slot = english_font_slots[idx];
|
||||
String8 sample_text = str8_lit("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&*()-_+=[{]}\\|;:'\",<.>/?");
|
||||
fnt_push_run_from_string(scratch.arena,
|
||||
rd_font_from_slot(slot),
|
||||
font_size,
|
||||
0, 0, 0,
|
||||
sample_text);
|
||||
fnt_push_run_from_string(scratch.arena,
|
||||
rd_font_from_slot(slot),
|
||||
font_size,
|
||||
0, 0, 0,
|
||||
sample_text);
|
||||
fnt_run_from_string(rd_font_from_slot(slot),
|
||||
font_size,
|
||||
0, 0, 0,
|
||||
sample_text);
|
||||
fnt_run_from_string(rd_font_from_slot(slot),
|
||||
font_size,
|
||||
0, 0, 0,
|
||||
sample_text);
|
||||
scratch_end(scratch);
|
||||
}
|
||||
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);
|
||||
fnt_push_run_from_string(scratch.arena,
|
||||
rd_font_from_slot(icon_font_slot),
|
||||
font_size,
|
||||
0, 0, FNT_RasterFlag_Smooth,
|
||||
rd_icon_kind_text_table[icon_kind]);
|
||||
fnt_push_run_from_string(scratch.arena,
|
||||
rd_font_from_slot(icon_font_slot),
|
||||
font_size,
|
||||
0, 0, FNT_RasterFlag_Smooth,
|
||||
rd_icon_kind_text_table[icon_kind]);
|
||||
fnt_push_run_from_string(scratch.arena,
|
||||
rd_font_from_slot(icon_font_slot),
|
||||
font_size,
|
||||
0, 0, FNT_RasterFlag_Smooth,
|
||||
rd_icon_kind_text_table[icon_kind]);
|
||||
fnt_run_from_string(rd_font_from_slot(icon_font_slot),
|
||||
font_size,
|
||||
0, 0, FNT_RasterFlag_Smooth,
|
||||
rd_icon_kind_text_table[icon_kind]);
|
||||
fnt_run_from_string(rd_font_from_slot(icon_font_slot),
|
||||
font_size,
|
||||
0, 0, FNT_RasterFlag_Smooth,
|
||||
rd_icon_kind_text_table[icon_kind]);
|
||||
fnt_run_from_string(rd_font_from_slot(icon_font_slot),
|
||||
font_size,
|
||||
0, 0, FNT_RasterFlag_Smooth,
|
||||
rd_icon_kind_text_table[icon_kind]);
|
||||
scratch_end(scratch);
|
||||
}
|
||||
}
|
||||
@@ -8947,7 +8942,7 @@ rd_window_frame(void)
|
||||
ellipses_raster_flags = box->display_fstrs.last->v.params.raster_flags;
|
||||
}
|
||||
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")
|
||||
{
|
||||
|
||||
@@ -1164,7 +1164,7 @@ internal UI_BOX_CUSTOM_DRAW(rd_bp_box_draw_extensions)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
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);
|
||||
p.x -= run.dim.x*0.5f;
|
||||
p.y += run.descent;
|
||||
@@ -1177,7 +1177,7 @@ internal UI_BOX_CUSTOM_DRAW(rd_bp_box_draw_extensions)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
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 p = center_2f32(box->rect);
|
||||
p.x += box_dim.x*0.1f;
|
||||
|
||||
Reference in New Issue
Block a user