|
Kohi Game Engine
|
The Vulkan-specific backend window state. More...
#include <vulkan_types.h>
Data Fields | |
| VkSurfaceKHR | surface |
| The internal Vulkan surface for the window to be drawn to. More... | |
| vulkan_swapchain | swapchain |
| The swapchain. More... | |
| u32 | image_index |
| The current image index. More... | |
| u32 | current_frame |
| The current frame index ( % by max_frames_in_flight). More... | |
| u8 | max_frames_in_flight |
| Indicates the max number of frames in flight. 1 for double-buffering, 2 for triple-buffering. More... | |
| b8 | recreating_swapchain |
| Indicates if the swapchain is currently being recreated. More... | |
| vulkan_command_buffer * | graphics_command_buffers |
| The graphics command buffers, one per swapchain image. More... | |
| VkSemaphore * | image_available_semaphores |
| The semaphores used to indicate image availability, one per frame in flight. More... | |
| VkSemaphore * | queue_complete_semaphores |
| The semaphores used to indicate queue availability, one per frame in flight. More... | |
| VkFence * | in_flight_fences |
| The in-flight fences, used to indicate to the application when a frame is busy/ready. One per frame in flight. More... | |
| renderbuffer * | staging |
| Resusable staging buffers (one per frame in flight) to transfer data from a resource to a GPU-only buffer. More... | |
| khandle ** | frame_texture_updated_list |
| Array of darrays of handles to textures that were updated as part of a frame's workload. One list per frame in flight. More... | |
| u64 | framebuffer_size_generation |
| u64 | framebuffer_previous_size_generation |
| u8 | skip_frames |
The Vulkan-specific backend window state.
This owns all resources associated with the window (i.e swapchain) and anything tied to it or max_frames_in_flight (sync objects, staging buffer, command buffers, etc.).
| u32 current_frame |
The current frame index ( % by max_frames_in_flight).
| khandle** frame_texture_updated_list |
Array of darrays of handles to textures that were updated as part of a frame's workload. One list per frame in flight.
| u64 framebuffer_previous_size_generation |
| u64 framebuffer_size_generation |
| vulkan_command_buffer* graphics_command_buffers |
The graphics command buffers, one per swapchain image.
| VkSemaphore* image_available_semaphores |
The semaphores used to indicate image availability, one per frame in flight.
| u32 image_index |
The current image index.
| VkFence* in_flight_fences |
The in-flight fences, used to indicate to the application when a frame is busy/ready. One per frame in flight.
| u8 max_frames_in_flight |
Indicates the max number of frames in flight. 1 for double-buffering, 2 for triple-buffering.
| VkSemaphore* queue_complete_semaphores |
The semaphores used to indicate queue availability, one per frame in flight.
| b8 recreating_swapchain |
Indicates if the swapchain is currently being recreated.
| u8 skip_frames |
| renderbuffer* staging |
Resusable staging buffers (one per frame in flight) to transfer data from a resource to a GPU-only buffer.
| VkSurfaceKHR surface |
The internal Vulkan surface for the window to be drawn to.
| vulkan_swapchain swapchain |
The swapchain.