How to implement Vulkan in Delphi.
Vulkan を Delphi で実装する方法。
▼ VulkanSamples @ LunarG
-
function init_global_extension_properties( var layer_props_:T_layer_properties ) :VkResult; function init_global_layer_properties( var info_:T_sample_info ) :VkResult;
-
function init_instance( var info_:T_sample_info; const app_short_name_:P_char ) :VkResult;
-
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 );
-
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 );
-
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 );
-
procedure init_swapchain_extension( var info_:T_sample_info );
-
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 );
-
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 );
-
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 );
-
procedure init_framebuffers( var info_:T_sample_info; include_depth:T_bool ); procedure destroy_framebuffers( var info_:T_sample_info );
-
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 );
-
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 );
-
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 );