text: #pragma once
  #include <vulkan/vulkan.h>
  
  namespace vkinit 
  {
  
  	//vulkan init code goes here
  
  	VkCommandPoolCreateInfo command_pool_create_info(uint32_t queueFamilyIndex, VkCommandPoolCreateFlags flags = 0);
  
  	VkCommandBufferAllocateInfo command_buffer_allocate_info(VkCommandPool pool, uint32_t count = 1, VkCommandBufferLevel level = VK_COMMAND_BUFFER_LEVEL_PRIMARY);
  
  	VkPipelineShaderStageCreateInfo pipeline_shader_stage_create_info(VkShaderStageFlagBits stage, VkShaderModule shaderModule);
  	
  	VkPipelineVertexInputStateCreateInfo vertex_input_state_create_info();
  	
  	VkPipelineRasterizationStateCreateInfo rasterization_state_create_info(VkPolygonMode polygonMode);
  	
  	VkPipelineMultisampleStateCreateInfo multisampling_state_create_info();
  
  	VkPipelineColorBlendAttachmentState color_blend_attachment_state();
  
  	VkPipelineInputAssemblyStateCreateInfo input_assembly_create_info(VkPrimitiveTopology topology);
  	
  	VkPipelineLayoutCreateInfo pipeline_layout_create_info();
  	
  	VkDescriptorSetLayoutBinding descriptorset_layout_binding(VkDescriptorType type, VkShaderStageFlags stageFlags, uint32_t binding);
  	
  	VkWriteDescriptorSet write_descriptor_buffer(VkDescriptorType type, VkDescriptorSet dstSet, VkDescriptorBufferInfo* bufferInfo, uint32_t binding);
  }
  