extern VkInstance vk_instance;
extern int vk_qfamily;
extern VkDescriptorPool vk_dpool;
+extern VkRenderPass vk_renderpass;
struct vku_buffer {
VkBuffer buf;
int size;
};
+struct vku_pipeline {
+};
+
+struct vku_pipeline_info {
+ /* shader stages */
+ VkShaderModule vs;
+ VkShaderModule fs;
+
+ /* states info */
+
+ VkPipelineShaderStageCreateInfo inf_shader_stage;
+
+ VkPipelineVertexInputStateCreateInfo inf_vertex_input;
+
+ VkPipelineInputAssemblyStateCreateInfo inf_input_asm;
+
+ VkPipelineTessellationStateCreateInfo inf_tessel;
+
+ VkPipelineViewportStateCreateInfo inf_viewport;
+ VkPipelineRasterizationStateCreateInfo inf_raster;
+ VkPipelineMultisampleStateCreateInfo inf_multisample;
+ VkPipelineDepthStencilStateCreateInfo inf_depth_stencil;
+ VkPipelineColorBlendStateCreateInfo inf_colorblend;
+
+ VkPipelineDynamicStateCreateInfo inf_dynamic_state;
+
+ VkPipelineLayout layout;
+ VkRenderPass renderpass;
+ uint32_t subpass;
+};
+
/* extensions */
bool vku_have_extension(const char *name);
bool vku_have_device_extension(const char *name);
int binding_point, int size);
void vku_destroy_descriptor(vku_descriptor *descriptor);
-bool vku_create_descriptor_pool(vku_descriptor **descriptors, int num_desc, VkDescriptorSet set);
+bool vku_create_descriptor_pool(vku_descriptor **descriptors, int num_desc,
+ VkDescriptorSet set);
void vku_destroy_descriptor_pool();
#endif // VKUTIL_H_