44 struct SwapChainSupportDetails;
49 class GraphicsUpdateArguments;
50 class VulkanRenderDefinition;
51 struct SwapChainSupportDetails;
uint64_t VkFence
Definition ImageResources.h:40
#define vk_null
Definition VulkanDefines.h:11
uint64_t VkSurfaceKHR
Definition VulkanInstance.h:62
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
Provides a constant, unmodifiable pointer that has shared ownership of a dynamically allocated object...
Definition GraphicsPipeline.h:42
Provides a modifiable pointer that has shared ownership of a dynamically allocated object.
Definition Pointer.hpp:320
A GraphicsPipeline is a set of resources that are chained together to correctly render something.
Definition GraphicsPipeline.h:47
Options that are used for performing an update on a Graphics Engine call.
Definition GraphicsUpdateArguments.h:43
A root class that stores an an array of pixel data that can be displayed as an Image.
Definition Image.h:40
Definition MemoryManager.h:261
Represents a color in the RGB space with optional alpha transparency.
Definition RGBColor.h:54
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
A fixed-size array with better performance compared to dynamic containers.
Definition Vector.hpp:60
A GraphicsPipeline that renders a single Viewport for Vulkan.
Definition VulkanRenderPipeline.h:57
RGBColor m_clear_color
Definition VulkanRenderPipeline.h:169
DynamicPointer< VulkanImageData > m_shadow_image
Definition VulkanRenderPipeline.h:151
virtual bool needsRecreateSwapchain(GraphicsUpdateArguments &args)
bool m_needs_pipeline_recreation
Definition VulkanRenderPipeline.h:173
virtual void cleanupSwapChainResources(bool clean_khr)
DynamicPointer< VulkanImageData > m_depth_image
Definition VulkanRenderPipeline.h:149
virtual void recreateSwapChainResources(GraphicsUpdateArguments &args)
Buffer< VulkanImageResources > m_khr_images
Definition VulkanRenderPipeline.h:143
virtual bool executeDrawCycle(GraphicsUpdateArguments &args)
VulkanRenderPipeline(VulkanRenderPipeline &&pipeline)
void getGrabImages(uint04 multisample_count)
VulkanRenderPipeline(VulkanSession *session)
WindowInstance * m_window_instance
Definition VulkanRenderPipeline.h:159
DynamicPointer< VulkanImageData > m_frame_grab_image
Definition VulkanRenderPipeline.h:146
void setupSwapChainImages(Buffer< VkImage > &images, uint04 multisample_count)
void setClearColor(const RGBColor &color)
void init(GraphicsUpdateArguments &args) override
void presentKHR(GraphicsUpdateArguments &args)
DynamicPointer< VulkanRenderDefinition > & getRenderDefinition()
uint08 m_khr_format
Definition VulkanRenderPipeline.h:166
ConstPointer< SwapChainSupportDetails > m_swap_chain_support_details
Definition VulkanRenderPipeline.h:157
void updateFrameSize(GraphicsUpdateArguments &args)
bool m_suboptimal_khr
Definition VulkanRenderPipeline.h:175
void setWindowInstance(WindowInstance *instance) override
virtual void submitQueue(GraphicsUpdateArguments &args)
Vector< 2, uint04 > chooseSwapExtent(const VkSurfaceCapabilitiesKHR &capabilities, const Vector< 2, uint04 > &requested_size)
Image * m_grab_image
Definition VulkanRenderPipeline.h:161
virtual ~VulkanRenderPipeline()
virtual void drawFrame(GraphicsUpdateArguments &args) override
void setGrabImage(Image *image)
void getKHRImage(GraphicsUpdateArguments &args)
VulkanSession * m_session
Definition VulkanRenderPipeline.h:155
Time m_last_render_time
Definition VulkanRenderPipeline.h:164
VkSurfaceKHR m_surface
Definition VulkanRenderPipeline.h:139
virtual void commit(GraphicsUpdateArguments &) override
Definition VulkanRenderPipeline.h:133
SwapChainSupportDetails queryKHRSupport(VkPhysicalDevice_T *device)
Buffer< VkClearValue, uint04, ObjectAllocator< true > > clearValues() const
void setShadowImages(GraphicsUpdateArguments &args)
Buffer< FrameResources > m_frames
Definition VulkanRenderPipeline.h:142
void setViewportImages(GraphicsUpdateArguments &args)
bool neadsSurfaceUpdate() const
bool m_needs_grab_image
Definition VulkanRenderPipeline.h:170
DynamicPointer< VulkanImageView > m_shadow_view
Definition VulkanRenderPipeline.h:152
DynamicPointer< VulkanDevice > m_device
Definition VulkanRenderPipeline.h:154
bool m_is_init
Definition VulkanRenderPipeline.h:172
VkResult finishBlockingReadback(GraphicsUpdateArguments &args)
bool m_needs_screen_draw
Definition VulkanRenderPipeline.h:171
DynamicPointer< VulkanImageData > m_multisample_image_color
Definition VulkanRenderPipeline.h:147
uint04 m_number_of_grab_images
Definition VulkanRenderPipeline.h:167
void createCommandBuffers()
virtual const ConstPointer< GraphicsDevice > & device() const override
virtual void updateUniformBuffer(GraphicsUpdateArguments &) override
Definition VulkanRenderPipeline.h:134
DynamicPointer< VulkanImageView > m_multisample_view_color
Definition VulkanRenderPipeline.h:148
bool needsCleanup() const
Definition VulkanRenderPipeline.h:129
void ensureLastRenderComplete() override
const DynamicPointer< GraphicsDevice > & device() override
VulkanImageResources * m_last_image
Definition VulkanRenderPipeline.h:160
bool m_needs_cleanup
Definition VulkanRenderPipeline.h:174
void setDevice(const DynamicPointer< VulkanDevice > &instance)
void cleanResources() override
Vector< 2, uint04 > m_draw_size
Definition VulkanRenderPipeline.h:163
VkSurfaceFormatKHR chooseSwapSurfaceFormat(const Buffer< VkSurfaceFormatKHR, uint04, ObjectAllocator< true > > &availableFormats)
bool runCommand(GraphicsUpdateArguments &args) override
VulkanRenderPipeline(const VulkanRenderPipeline &pipeline)=delete
virtual void getKHRImages(uint04 multisample_count)
bool createPipeline(GraphicsUpdateArguments &args) override
void addReadback(GraphicsUpdateArguments &args)
virtual void lockAllImagesCommand()
Buffer< VulkanImageResources > m_grab_images
Definition VulkanRenderPipeline.h:144
virtual bool hasCommand() const override
Definition VulkanRenderPipeline.h:135
void getGrabImage(GraphicsUpdateArguments &args)
void lockImageCommand(VulkanImageResources &image) const
VkSwapchainKHR m_khr_swap_chain
Definition VulkanRenderPipeline.h:140
DynamicPointer< VulkanRenderDefinition > m_render_definition
Definition VulkanRenderPipeline.h:156
DynamicPointer< VulkanImageView > m_depth_view
Definition VulkanRenderPipeline.h:150
void setMultisampleImages(GraphicsUpdateArguments &args)
virtual void cleanupKHR()
virtual void createSwapChainKHR(GraphicsUpdateArguments &args)
void setSwapChainImageFormat(VkFormat format)
static fltp08 ScreenSizeAllocationFactor()
Time m_surface_update_time
Definition VulkanRenderPipeline.h:165
Creates and manages the resources necessary for converting a DesignObjectLookup into 3D rendered data...
Definition VulkanSession.h:49
uint64_t uint08
-Defines an alias representing an 8 byte, unsigned integer
Definition BaseValues.hpp:106
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:149
Data for pointing to a specific Image target within the Vulkan Graphics space.
Definition ImageResources.h:50
Definition VulkanRenderPipeline.h:67
VkFence fence
Definition VulkanRenderPipeline.h:68
bool fence_waitable
Definition VulkanRenderPipeline.h:73
VkSemaphore image_sem
Definition VulkanRenderPipeline.h:69
bool image_sem_waitable
Definition VulkanRenderPipeline.h:72
VkSemaphore draw_sem
Definition VulkanRenderPipeline.h:70
VulkanImageResources * image_acquired
Definition VulkanRenderPipeline.h:71
Definition VulkanRenderPipeline.h:60
VkSurfaceCapabilitiesKHR capabilities
Definition VulkanRenderPipeline.h:61
Buffer< VkSurfaceFormatKHR, uint04, ObjectAllocator< true > > formats
Definition VulkanRenderPipeline.h:62
Buffer< VkPresentModeKHR > presentModes
Definition VulkanRenderPipeline.h:63