/VulkanSamples

Vulkan for Delphi

Primary LanguageC++MIT LicenseMIT

Vulkan Samples

How to implement Vulkan in Delphi.
VulkanDelphi で実装する方法。


Fig.16: draw_textured_cube

  • 01-init_instance

    function init_global_extension_properties( var layer_props_:T_layer_properties ) :VkResult;
    function init_global_layer_properties( var info_:T_sample_info ) :VkResult;
  • 02-enumerate_devices

    function init_instance( var info_:T_sample_info; const app_short_name_:P_char ) :VkResult;
  • 03-init_device

    function init_device_extension_properties( var info_:T_sample_info; var layer_props_:T_layer_properties ) :VkResult;
    function init_enumerate_device( var info_:T_sample_info; gpu_count_:T_uint32_t = 1 ) :VkResult;
    procedure destroy_instance( var info_:T_sample_info );
  • 04-init_command_buffer

    procedure init_queue_family_index( var info_:T_sample_info );
    function init_device( var info_:T_sample_info ) :VkResult;
    procedure destroy_device( var info_:T_sample_info );
  • 05-init_swapchain

    procedure init_instance_extension_names( var info_:T_sample_info );
    procedure init_device_extension_names( var info_:T_sample_info );
    procedure init_window_size( var info_:T_sample_info; default_width_,default_height_:UInt32 );
    procedure init_connection( var info_:T_sample_info );
    procedure init_window( var info_:T_sample_info );
    procedure destroy_window( var info_:T_sample_info );
  • 06-init_depth_buffer

    procedure init_swapchain_extension( var info_:T_sample_info );
  • 07-init_uniform_buffer

  • 08-init_pipeline_layout

  • 09-init_descriptor_set

    procedure init_uniform_buffer( var info_:T_sample_info );
    procedure init_descriptor_and_pipeline_layouts( var info_:T_sample_info; use_texture_:T_bool; descSetLayoutCreateFlags_:VkDescriptorSetLayoutCreateFlags = 0 );
    procedure destroy_uniform_buffer( var info_:T_sample_info );
    procedure destroy_descriptor_and_pipeline_layouts( var info_:T_sample_info );
  • 10-init_render_pass

    procedure init_device_queue( var info_:T_sample_info );
    procedure init_swap_chain( var info_:T_sample_info; usageFlags_:VkImageUsageFlags = Ord( VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT ) or Ord( VK_IMAGE_USAGE_TRANSFER_SRC_BIT ) );
    procedure init_depth_buffer( var info_:T_sample_info );
    procedure destroy_depth_buffer( var info_:T_sample_info );
    procedure destroy_swap_chain( var info_:T_sample_info );
  • 11-init_shaders

  • 12-init_frame_buffers

    procedure init_command_pool( var info_:T_sample_info );
    procedure init_command_buffer( var info_:T_sample_info );
    procedure execute_begin_command_buffer( var info_:T_sample_info );
    procedure init_renderpass( var info_:T_sample_info; include_depth_:T_bool; clear_:T_bool = True; finalLayout_:VkImageLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR; initialLayout_:VkImageLayout = VK_IMAGE_LAYOUT_UNDEFINED );
    procedure execute_end_command_buffer( var info_:T_sample_info );
    procedure execute_queue_command_buffer( var info_:T_sample_info );
    procedure destroy_renderpass( var info_:T_sample_info );
    procedure destroy_command_buffer( var info_:T_sample_info );
    procedure destroy_command_pool( var info_:T_sample_info );
  • 13-init_vertex_buffer

    procedure init_framebuffers( var info_:T_sample_info; include_depth:T_bool );
    procedure destroy_framebuffers( var info_:T_sample_info );
  • 14-init_pipeline

    procedure init_vertex_buffer( var info_:T_sample_info; const vertexData_:P_void; dataSize_:T_uint32_t; dataStride_:T_uint32_t; use_texture_:T_bool );
    procedure init_descriptor_pool( var info_:T_sample_info; use_texture_:T_bool );
    procedure init_descriptor_set( var info_:T_sample_info; use_texture_:T_bool );
    procedure init_shaders( var info_:T_sample_info; const vertShaderCI_:P_VkShaderModuleCreateInfo; const fragShaderCI_:P_VkShaderModuleCreateInfo );
    procedure destroy_descriptor_pool( var info_:T_sample_info );
    procedure destroy_vertex_buffer( var info_:T_sample_info );
    procedure destroy_shaders( var info_:T_sample_info );
  • 15-draw_cube

    procedure init_viewports( var info_:T_sample_info );
    procedure init_scissors( var info_:T_sample_info );
    procedure init_pipeline_cache( var info:T_sample_info );
    procedure init_pipeline( var info:T_sample_info; include_depth:VkBool32; include_vi:VkBool32 = 1 );
    procedure destroy_pipeline( var info_:T_sample_info );
    procedure destroy_pipeline_cache( var info_:T_sample_info );
  • 16-vulkan_1_1

  • draw_textured_cube

    procedure init_buffer( var info_:T_sample_info; var texObj_:T_texture_object );
    procedure init_image( var info_:T_sample_info; var texObj_:T_texture_object; const textureName_:String; extraUsages_:VkImageUsageFlags; extraFeatures_:VkFormatFeatureFlags );
    procedure init_sampler( var info_:T_sample_info; var sampler_:VkSampler );
    procedure init_texture( var info_:T_sample_info; const textureName_:String = ''; extraUsages_:VkImageUsageFlags = 0; extraFeatures_:VkFormatFeatureFlags = 0 );
    procedure destroy_textures( var info_:T_sample_info );