Just restore some code that I deleted from the raylib font provider file.

This commit is contained in:
Edward R. Gonzalez 2024-05-26 13:58:55 -04:00
parent 5c2f55148a
commit c681370d8b

View File

@ -1,5 +1,7 @@
package sectr
import "core:os"
Font_Largest_Px_Size :: 32
Font_Size_Interval :: 2
@ -28,7 +30,9 @@ FontTag :: struct {
}
FontDef :: struct {
placeholder : int,
path_file : string,
}
FontProviderData :: struct {
@ -37,20 +41,72 @@ FontProviderData :: struct {
font_provider_startup :: proc()
{
profile(#procedure)
state := get_state()
font_provider_data := & get_state().font_provider_data; using font_provider_data
font_cache_alloc_error : AllocatorError
font_cache, font_cache_alloc_error = hmap_chained_init(FontDef, hmap_closest_prime(1 * Kilo), persistent_allocator(), dbg_name = "font_cache" )
verify( font_cache_alloc_error == AllocatorError.None, "Failed to allocate font_cache" )
log("font_cache created")
log("font_provider initialized")
}
font_provider_shutdown :: proc()
{
font_provider_data := & get_state().font_provider_data; using font_provider_data
for & entry in font_cache.lookup
{
if entry == nil do continue
def := entry.value
// for & px_render in def.size_table {
// using px_render
// rl.UnloadFontData( glyphs, count )
// rl.UnloadTexture ( texture )
// rl.MemFree( recs )
// }
}
}
font_load :: proc(ath_file : string,
font_load :: proc(path_file : string,
default_size : f32 = Font_Load_Use_Default_Size,
desired_id : string = Font_Load_Gen_ID
) -> FontID
{
profile(#procedure)
logf("Loading font: %v", path_file)
font_provider_data := & get_state().font_provider_data; using font_provider_data
font_data, read_succeded : = os.read_entire_file( path_file )
verify( b32(read_succeded), str_fmt("Failed to read font file for: %v", path_file) )
font_data_size := cast(i32) len(font_data)
desired_id := desired_id
// Use file name as key
if len(desired_id) == 0 {
// NOTE(Ed): This should never be used except for laziness so I'll be throwing a warning everytime.
log("desired_key not provided, using file name. Give it a proper name!", LogLevel.Warning)
// desired_id = cast(FontID) file_name_from_path(path_file)
desired_id = file_name_from_path(path_file)
}
// default_size := default_size
// if default_size == Font_Load_Use_Default_Size {
// default_size = Font_Default_Point_Size
// }
key := cast(u64) crc32( transmute([]byte) desired_id )
def, set_error := hmap_chained_set(font_cache, key, FontDef{})
verify( set_error == AllocatorError.None, "Failed to add new font entry to cache" )
def.path_file = path_file
// def.default_size = i32(points_to_pixels(default_size))
return {}
}