Fixed hot-reload for sokol
This commit is contained in:
		| @@ -381,12 +381,34 @@ reload :: proc( prof : ^SpallProfiler, persistent_mem, frame_mem, transient_mem, | ||||
| 	transient    = transient_mem | ||||
| 	files_buffer = files_buffer_mem | ||||
|  | ||||
| 	context.allocator      = persistent_allocator() | ||||
| 	context.allocator      = transient_allocator() | ||||
| 	context.temp_allocator = transient_allocator() | ||||
|  | ||||
| 	Memory_App.state = get_state() | ||||
| 	using state | ||||
|  | ||||
| 	sokol_context = context | ||||
|  | ||||
| 	Sokol: | ||||
| 	{ | ||||
| 		desc_app := sokol_app.DescReload { | ||||
| 			init_cb    = sokol_app_init_callback, | ||||
| 			frame_cb   = sokol_app_frame_callback, | ||||
| 			cleanup_cb = sokol_app_cleanup_callback, | ||||
| 			event_cb   = sokol_app_event_callback, | ||||
|  | ||||
| 			logger    = { sokol_app_log_callback, nil }, | ||||
| 			allocator = { sokol_app_alloc, sokol_app_free, nil }, | ||||
| 		} | ||||
| 		sokol_app.client_reload( desc_app ) | ||||
|  | ||||
| 		desc_gfx := sokol_gfx.DescReload { | ||||
| 			allocator = { sokol_gfx_alloc, sokol_gfx_free, nil }, | ||||
| 			logger    = { sokol_gfx_log_callback, nil }, | ||||
| 		} | ||||
| 		sokol_gfx.client_reload( desc_gfx ) | ||||
| 	} | ||||
|  | ||||
| 	// Procedure Addresses are not preserved on hot-reload. They must be restored for persistent data. | ||||
| 	// The only way to alleviate this is to either do custom handles to allocators | ||||
| 	// Or as done below, correct containers using allocators on reload. | ||||
|   | ||||
| @@ -7,8 +7,11 @@ render :: proc() | ||||
| { | ||||
| 	state := get_state(); using state | ||||
|  | ||||
| 	do_nothing : bool | ||||
| 	do_nothing = false | ||||
|  | ||||
| 	// Clear Demo | ||||
| 	if false | ||||
| 	if true | ||||
| 	{ | ||||
| 	  green_value := debug.gfx_clear_demo_pass_action.colors[0].clear_value.g + 0.01 | ||||
| 	  debug.gfx_clear_demo_pass_action.colors[0].clear_value.g = green_value > 1.0 ? 0.0 : green_value | ||||
|   | ||||
		Reference in New Issue
	
	Block a user