Just restore some code that I deleted from the raylib font provider file.
This commit is contained in:
		| @@ -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 {} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user