@@ -31,98 +31,103 @@ struct CommandBuffer {
3131 VkQueue queue = VK_NULL_HANDLE;
3232 bool isRecording = false ;
3333
34- void begin (VkCommandBufferUsageFlags flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
34+ void begin ( VkCommandBufferUsageFlags flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT );
3535 void end ();
3636 void reset ();
37- void submit (Fence fence = {}, std::vector<Semaphore> waitSemaphores = {}, std::vector<Semaphore> signalSemaphores = {});
37+ void submit ( Fence fence = {}, std::vector<Semaphore> waitSemaphores = {}, std::vector<Semaphore> signalSemaphores = {} );
3838 void cleanup ();
3939
4040 /* ***************************************** */
4141 /* COMMANDS */
4242 /* ***************************************** */
4343
44- void begin_renderpass (RenderPass& renderpass, Framebuffer& fbo, VkSubpassContents subpassContents = VK_SUBPASS_CONTENTS_INLINE);
45- void end_renderpass (RenderPass& renderpass, Framebuffer& fbo);
46- void draw_geometry (const VertexArrays& vao, uint32_t instanceCount = 1 , uint32_t firstOcurrence = 0 , int32_t offset = 0 , uint32_t firstInstance = 0 );
44+ void begin_renderpass ( RenderPass& renderpass, Framebuffer& fbo, VkSubpassContents subpassContents = VK_SUBPASS_CONTENTS_INLINE );
45+ void end_renderpass ( RenderPass& renderpass, Framebuffer& fbo );
46+ void draw_geometry ( const VertexArrays& vao, uint32_t instanceCount = 1 , uint32_t firstOcurrence = 0 , int32_t offset = 0 , uint32_t firstInstance = 0 );
4747 void draw_gui_data ();
48- void bind_shaderpass (ShaderPass& pass);
49- void bind_descriptor_set (DescriptorSet descriptor,
50- uint32_t ocurrence,
51- ShaderPass& pass,
52- std::vector<uint32_t > offsets = {},
53- BindingType binding = BINDING_TYPE_GRAPHIC);
54- void set_viewport (Extent2D extent, Offset2D scissorOffset = {0 , 0 });
55- void set_cull_mode (CullingMode mode);
56- void set_depth_write_enable (bool op);
57- void set_depth_test_enable (bool op);
58- void set_depth_bias_enable (bool op);
59- void set_depth_bias (float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
60-
61- void pipeline_barrier (Image& img,
62- ImageLayout oldLayout = LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
63- ImageLayout newLayout = LAYOUT_SHADER_READ_ONLY_OPTIMAL,
64- AccessFlags srcMask = ACCESS_COLOR_ATTACHMENT_WRITE,
65- AccessFlags dstMask = ACCESS_SHADER_READ,
66- PipelineStage srcStage = STAGE_COLOR_ATTACHMENT_OUTPUT,
67- PipelineStage dstStage = STAGE_FRAGMENT_SHADER);
68- void pipeline_barrier (Image& img,
69- uint32_t baseMipLevel,
70- uint32_t mipLevels,
71- ImageLayout oldLayout = LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
72- ImageLayout newLayout = LAYOUT_SHADER_READ_ONLY_OPTIMAL,
73- AccessFlags srcMask = ACCESS_COLOR_ATTACHMENT_WRITE,
74- AccessFlags dstMask = ACCESS_SHADER_READ,
75- PipelineStage srcStage = STAGE_COLOR_ATTACHMENT_OUTPUT,
76- PipelineStage dstStage = STAGE_FRAGMENT_SHADER);
77-
78- void clear_image (Image& img, ImageLayout layout, ImageAspect aspect = ASPECT_COLOR, Vec4 clearColor = Vec4(0 .0f , 0 .0f , 0 .0f , 1 .0f ));
48+ void bind_shaderpass ( ShaderPass& pass );
49+ void bind_descriptor_set ( DescriptorSet descriptor,
50+ uint32_t ocurrence,
51+ ShaderPass& pass,
52+ std::vector<uint32_t > offsets = {},
53+ BindingType binding = BINDING_TYPE_GRAPHIC );
54+ void set_viewport ( Extent2D extent, Offset2D scissorOffset = { 0 , 0 } );
55+ void set_cull_mode ( CullingMode mode );
56+ void set_depth_write_enable ( bool op );
57+ void set_depth_test_enable ( bool op );
58+ void set_depth_bias_enable ( bool op );
59+ void set_depth_bias ( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor );
60+
61+ void pipeline_barrier ( Image& img,
62+ ImageLayout oldLayout = LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
63+ ImageLayout newLayout = LAYOUT_SHADER_READ_ONLY_OPTIMAL,
64+ AccessFlags srcMask = ACCESS_COLOR_ATTACHMENT_WRITE,
65+ AccessFlags dstMask = ACCESS_SHADER_READ,
66+ PipelineStage srcStage = STAGE_COLOR_ATTACHMENT_OUTPUT,
67+ PipelineStage dstStage = STAGE_FRAGMENT_SHADER );
68+ void pipeline_barrier ( Image& img,
69+ uint32_t baseMipLevel,
70+ uint32_t mipLevels,
71+ ImageLayout oldLayout = LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
72+ ImageLayout newLayout = LAYOUT_SHADER_READ_ONLY_OPTIMAL,
73+ AccessFlags srcMask = ACCESS_COLOR_ATTACHMENT_WRITE,
74+ AccessFlags dstMask = ACCESS_SHADER_READ,
75+ PipelineStage srcStage = STAGE_COLOR_ATTACHMENT_OUTPUT,
76+ PipelineStage dstStage = STAGE_FRAGMENT_SHADER );
77+ void pipeline_barrier ( Buffer& buffer,
78+ AccessFlags srcMask = ACCESS_TRANSFER_WRITE,
79+ AccessFlags dstMask = ACCESS_SHADER_READ,
80+ PipelineStage srcStage = STAGE_TRANSFER,
81+ PipelineStage dstStage = STAGE_FRAGMENT_SHADER );
82+
83+ void clear_image ( Image& img, ImageLayout layout, ImageAspect aspect = ASPECT_COLOR, Vec4 clearColor = Vec4( 0 .0f , 0 .0f , 0 .0f , 1 .0f ) );
7984
8085 /* Copy the entire extent of the image*/
81- void blit_image (Image& srcImage,
82- Image& dstImage,
83- FilterType filter = FILTER_LINEAR,
84- uint32_t mipLevel = 0 ,
85- ImageAspect srcAspect = ASPECT_COLOR,
86- ImageAspect dstAspect = ASPECT_COLOR);
86+ void blit_image ( Image& srcImage,
87+ Image& dstImage,
88+ FilterType filter = FILTER_LINEAR,
89+ uint32_t mipLevel = 0 ,
90+ ImageAspect srcAspect = ASPECT_COLOR,
91+ ImageAspect dstAspect = ASPECT_COLOR );
8792
8893 /* Copy a custom extent of the image*/
89- void blit_image (Image& srcImage,
90- Image& dstImage,
91- Extent2D srcOrigin,
92- Extent2D dstOrigin,
93- Extent2D srcExtent,
94- Extent2D dstExtent,
95- FilterType filter = FILTER_LINEAR,
96- uint32_t mipLevel = 0 ,
97- ImageAspect srcAspect = ASPECT_COLOR,
98- ImageAspect dstAspect = ASPECT_COLOR);
94+ void blit_image ( Image& srcImage,
95+ Image& dstImage,
96+ Extent2D srcOrigin,
97+ Extent2D dstOrigin,
98+ Extent2D srcExtent,
99+ Extent2D dstExtent,
100+ FilterType filter = FILTER_LINEAR,
101+ uint32_t mipLevel = 0 ,
102+ ImageAspect srcAspect = ASPECT_COLOR,
103+ ImageAspect dstAspect = ASPECT_COLOR );
99104
100- void push_constants (ShaderPass& pass, ShaderStageFlags stage, const void * data, uint32_t size, uint32_t offset = 0 );
105+ void push_constants ( ShaderPass& pass, ShaderStageFlags stage, const void * data, uint32_t size, uint32_t offset = 0 );
101106
102- void dispatch_compute (Extent3D grid);
107+ void dispatch_compute ( Extent3D grid );
103108
104- void copy_buffer (Buffer& srcBuffer, Buffer& dstBuffer, size_t size);
109+ void copy_buffer ( Buffer& srcBuffer, Buffer& dstBuffer, size_t size );
105110
106111 /*
107112 Expected layout is LAYOUT_UNDEFINED
108113 */
109- void copy_buffer_to_image (Image& img, Buffer& buffer);
110-
111- void copy_image_to_buffer (Image& img, Buffer& buffer);
114+ void copy_buffer_to_image ( Image& img, Buffer& buffer );
115+
116+ void copy_image_to_buffer ( Image& img, Buffer& buffer );
112117
113118 /*
114119 Generates mipmaps for a given image following a downsampling by 2 strategy
115120 */
116- void generate_mipmaps (Image& img, ImageLayout initialLayout = LAYOUT_TRANSFER_DST_OPTIMAL, ImageLayout finalLayout = LAYOUT_SHADER_READ_ONLY_OPTIMAL);
121+ void generate_mipmaps ( Image& img, ImageLayout initialLayout = LAYOUT_TRANSFER_DST_OPTIMAL, ImageLayout finalLayout = LAYOUT_SHADER_READ_ONLY_OPTIMAL );
117122};
118123struct CommandPool {
119124 VkCommandPool handle = VK_NULL_HANDLE;
120125 VkDevice device = VK_NULL_HANDLE;
121126 VkQueue queue = VK_NULL_HANDLE;
122127
123- CommandBuffer allocate_command_buffer (uint32_t count, CommandBufferLevel level = COMMAND_BUFFER_LEVEL_PRIMARY);
128+ CommandBuffer allocate_command_buffer ( uint32_t count, CommandBufferLevel level = COMMAND_BUFFER_LEVEL_PRIMARY );
124129
125- void reset (VkCommandPoolResetFlags flags = 0 ) const ;
130+ void reset ( VkCommandPoolResetFlags flags = 0 ) const ;
126131
127132 void cleanup ();
128133};
0 commit comments