Fixed a long-standing issue with the chained hashmap (finally)
This commit is contained in:
		| @@ -92,7 +92,7 @@ startup :: proc( prof : ^SpallProfiler, persistent_mem, frame_mem, transient_mem | ||||
| 		// push( policy_ptr, SlabSizeClass { 512 * Megabyte, 512 * Megabyte, alignment }) | ||||
|  | ||||
| 		alloc_error : AllocatorError | ||||
| 		persistent_slab, alloc_error = slab_init( policy_ptr, allocator = persistent_allocator(), dbg_name = Persistent_Slab_DBG_Name, enable_mem_tracking = true ) | ||||
| 		persistent_slab, alloc_error = slab_init( policy_ptr, allocator = persistent_allocator(), dbg_name = Persistent_Slab_DBG_Name, enable_mem_tracking = false ) | ||||
| 		verify( alloc_error == .None, "Failed to allocate the persistent slab" ) | ||||
|  | ||||
| 		transient_slab, alloc_error = slab_init( & default_slab_policy, allocator = transient_allocator(), dbg_name = Transient_Slab_DBG_Name ) | ||||
| @@ -254,23 +254,23 @@ startup :: proc( prof : ^SpallProfiler, persistent_mem, frame_mem, transient_mem | ||||
| 	if true | ||||
| 	{ | ||||
| 		font_provider_startup() | ||||
| 		// path_rec_mono_semicasual_reg := strings.concatenate( { Path_Assets, "RecMonoSemicasual-Regular-1.084.ttf" }) | ||||
| 		// font_rec_mono_semicasual_reg  = font_load( path_rec_mono_semicasual_reg, 24.0, "RecMonoSemiCasual_Regular" ) | ||||
| 		path_rec_mono_semicasual_reg := strings.concatenate( { Path_Assets, "RecMonoSemicasual-Regular-1.084.ttf" }) | ||||
| 		font_rec_mono_semicasual_reg  = font_load( path_rec_mono_semicasual_reg, 24.0, "RecMonoSemiCasual_Regular" ) | ||||
|  | ||||
| 		// path_squidgy_slimes := strings.concatenate( { Path_Assets, "Squidgy Slimes.ttf" } ) | ||||
| 		// font_squidgy_slimes = font_load( path_squidgy_slimes, 24.0, "Squidgy_Slime" ) | ||||
| 		path_squidgy_slimes := strings.concatenate( { Path_Assets, "Squidgy Slimes.ttf" } ) | ||||
| 		font_squidgy_slimes = font_load( path_squidgy_slimes, 24.0, "Squidgy_Slime" ) | ||||
|  | ||||
| 		path_firacode := strings.concatenate( { Path_Assets, "FiraCode-Regular.ttf" } ) | ||||
| 		font_firacode  = font_load( path_firacode, 24.0, "FiraCode" ) | ||||
|  | ||||
| 		// path_open_sans := strings.concatenate( { Path_Assets, "OpenSans-Regular.ttf" } ) | ||||
| 		// font_open_sans  = font_load( path_open_sans, 24.0, "OpenSans" ) | ||||
| 		path_open_sans := strings.concatenate( { Path_Assets, "OpenSans-Regular.ttf" } ) | ||||
| 		font_open_sans  = font_load( path_open_sans, 24.0, "OpenSans" ) | ||||
|  | ||||
| 		// path_noto_sans := strings.concatenate( { Path_Assets, "NotoSans-Regular.ttf" } ) | ||||
| 		// font_noto_sans  = font_load( path_noto_sans, 24.0, "NotoSans" ) | ||||
| 		path_noto_sans := strings.concatenate( { Path_Assets, "NotoSans-Regular.ttf" } ) | ||||
| 		font_noto_sans  = font_load( path_noto_sans, 24.0, "NotoSans" ) | ||||
|  | ||||
| 		// path_arial_unicode_ms := strings.concatenate( { Path_Assets, "Arial Unicode MS.ttf" } ) | ||||
| 		// font_arial_unicode_ms  = font_load( path_arial_unicode_ms, 24.0, "Arial_Unicode_MS" ) | ||||
| 		path_arial_unicode_ms := strings.concatenate( { Path_Assets, "Arial Unicode MS.ttf" } ) | ||||
| 		font_arial_unicode_ms  = font_load( path_arial_unicode_ms, 24.0, "Arial_Unicode_MS" ) | ||||
|  | ||||
| 		default_font = font_firacode | ||||
| 		log( "Default font loaded" ) | ||||
|   | ||||
| @@ -125,7 +125,7 @@ render_mode_screenspace :: proc() | ||||
| 	debug.debug_text_vis = true | ||||
| 	if debug.debug_text_vis | ||||
| 	{ | ||||
| 		fps_msg       := str_fmt( "FPS: %0.2f", fps_avg) | ||||
| 		fps_msg       := str_fmt( "FPS: %d", frame) | ||||
| 		fps_msg_width := measure_text_size( fps_msg, default_font, 12.0, 0.0 ).x | ||||
| 		fps_msg_pos   := screen_get_corners().top_right - { fps_msg_width, 0 } - { 5, 5 } | ||||
| 		debug_draw_text( fps_msg, fps_msg_pos, 38.0, color = Color_Red ) | ||||
| @@ -133,7 +133,7 @@ render_mode_screenspace :: proc() | ||||
| 		// debug_text( "Screen Width : %v", rl.GetScreenWidth () ) | ||||
| 		// debug_text( "Screen Height: %v", rl.GetScreenHeight() ) | ||||
| 		// debug_text( "frametime_target_ms       : %f ms", frametime_target_ms ) | ||||
| 		debug_text( "frametime                 : %f ms", frametime_delta_ms ) | ||||
| 		debug_text( "frametime                 : %d ms", frame ) | ||||
| 		// debug_text( "frametime_last_elapsed_ms : %f ms", frametime_elapsed_ms ) | ||||
| 		if replay.mode == ReplayMode.Record { | ||||
| 			debug_text( "Recording Input") | ||||
|   | ||||
| @@ -70,10 +70,10 @@ font_provider_startup :: proc() | ||||
| 	provider_data := & state.font_provider_data; using provider_data | ||||
|  | ||||
| 	error : AllocatorError | ||||
| 	font_cache, error = make( HMapChained(FontDef), hmap_closest_prime(1 * Kilo), persistent_allocator() /*dbg_name = "font_cache"*/ ) | ||||
| 	font_cache, error = make( HMapChained(FontDef), hmap_closest_prime(1 * Kilo), persistent_allocator(), dbg_name = "font_cache" ) | ||||
| 	verify( error == AllocatorError.None, "Failed to allocate font_cache" ) | ||||
|  | ||||
| 	ve.init( & provider_data.ve_font_cache, .STB_TrueType, allocator = persistent_slab_allocator() ) | ||||
| 	ve.init( & provider_data.ve_font_cache, .STB_TrueType, allocator = persistent_allocator() ) | ||||
| 	log("VEFontCached initialized") | ||||
|  | ||||
| 	ve.configure_snap( & provider_data.ve_font_cache, u32(state.app_window.extent.x * 2.0), u32(state.app_window.extent.y * 2.0) ) | ||||
| @@ -552,7 +552,7 @@ font_load :: proc(path_file : string, | ||||
|  | ||||
| 	for font_size : i32 = Font_Size_Interval; font_size <= Font_Largest_Px_Size; font_size += Font_Size_Interval | ||||
| 	{ | ||||
| 		logf("Loading at size %v", font_size) | ||||
| 		// logf("Loading at size %v", font_size) | ||||
| 		id    := (font_size / Font_Size_Interval) + (font_size % Font_Size_Interval) | ||||
| 		ve_id := & def.size_table[id - 1] | ||||
| 		ve_id^ = ve.load_font( & provider_data.ve_font_cache, desired_id, font_data, 14.0 ) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user