| 417 | } |
| 418 | |
| 419 | void finalize() |
| 420 | { |
| 421 | SDL_DestroyWindow(sdl_window); |
| 422 | cgpu_wait_queue_idle(gfx_queue); |
| 423 | cgpu_wait_fences(exec_fences, FLIGHT_FRAMES); |
| 424 | for (uint32_t i = 0; i < FLIGHT_FRAMES; i++) |
| 425 | { |
| 426 | cgpu_free_command_buffer(cmds[i]); |
| 427 | cgpu_free_command_pool(pools[i]); |
| 428 | cgpu_free_fence(exec_fences[i]); |
| 429 | } |
| 430 | cgpu_free_semaphore(present_semaphore); |
| 431 | cgpu_free_descriptor_set(desc_set); |
| 432 | if (desc_set2) cgpu_free_descriptor_set(desc_set2); |
| 433 | cgpu_free_sampler(sampler_state); |
| 434 | cgpu_free_texture(sampled_texture); |
| 435 | cgpu_free_texture_view(sampled_view); |
| 436 | for (uint32_t i = 0; i < swapchain->buffer_count; i++) |
| 437 | { |
| 438 | cgpu_free_texture_view(views[i]); |
| 439 | } |
| 440 | cgpu_free_swapchain(swapchain); |
| 441 | cgpu_free_surface(device, surface); |
| 442 | cgpu_free_render_pipeline(pipeline); |
| 443 | cgpu_free_root_signature(root_sig); |
| 444 | cgpu_free_queue(gfx_queue); |
| 445 | cgpu_free_device(device); |
| 446 | cgpu_free_instance(instance); |
| 447 | } |
| 448 | |
| 449 | void ProgramMain(void* usrdata) |
| 450 | { |
no test coverage detected