You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

151 line
7.2 KiB

  1. unit VulkanUtils;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils,
  6. Vulkan,
  7. uvkuTypes, uvkuAllocationHandler, uvkuDebugReporter,
  8. uvkuInstance, uvkuInstanceFactory,
  9. uvkuPhysicalDevice, uvkuDevice, uvkuDeviceFactory, uvkuDeviceMemory, uvkuQueue,
  10. uvkuSurface, uvkuSurfaceFactory,
  11. uvkuSwapChain, uvkuSwapChainFactory,
  12. uvkuImage, uvkuImageFactory, uvkuImageView, uvkuImageViewFactory,
  13. uvkuBuffer, uvkuBufferFactory, uvkuBufferView, uvkuBufferViewFactory,
  14. uvkuCommandPool, uvkuCommandPoolFactory, uvkuCommandBuffer,
  15. uvkuRenderPass, uvkuRenderPassFactory,
  16. uvkuFrameBuffer, uvkuFrameBufferFactory,
  17. uvkuDescriptorSetLayout, uvkuDescriptorSetLayoutFactory,
  18. uvkuShaderModule, uvkuShaderModuleFactory,
  19. uvkuPipelineLayout, uvkuPipelineLayoutFactory, uvkuPipelineCache, uvkuPipelineCacheFactory, uvkuPipeline, uvkuPipelineFactory,
  20. uvkuUtils;
  21. type
  22. { Types }
  23. PVkCharArr = uvkuTypes.PVkCharArr;
  24. TVkPhysicalDeviceArr = uvkuTypes.TVkPhysicalDeviceArr;
  25. TVkQueueFamilyPropertiesArr = uvkuTypes.TVkQueueFamilyPropertiesArr;
  26. TVkSparseImageFormatPropertiesArr = uvkuTypes.TVkSparseImageFormatPropertiesArr;
  27. TVkSurfaceFormatArr = uvkuTypes.TVkSurfaceFormatArr;
  28. TVkPresentModeArr = uvkuTypes.TVkPresentModeArr;
  29. TVkDisplayPropertiesArr = uvkuTypes.TVkDisplayPropertiesArr;
  30. TVkDisplayPlanePropertiesArr = uvkuTypes.TVkDisplayPlanePropertiesArr;
  31. TVkDisplayArr = uvkuTypes.TVkDisplayArr;
  32. TVkDisplayModePropertiesArr = uvkuTypes.TVkDisplayModePropertiesArr;
  33. TVkImageArr = uvkuTypes.TVkImageArr;
  34. TVkCommandBufferArr = uvkuTypes.TVkCommandBufferArr;
  35. TVkDescriptorSetLayoutBindingArr = uvkuTypes.TVkDescriptorSetLayoutBindingArr;
  36. TVkDescriptorSetLayoutArr = uvkuTypes.TVkDescriptorSetLayoutArr;
  37. TVkPushConstantRangeArr = uvkuTypes.TVkPushConstantRangeArr;
  38. TVkPipelineShaderStageCreateInfoArr = uvkuTypes.TVkPipelineShaderStageCreateInfoArr;
  39. TVkPipelineVertexInputStateCreateInfoArr = uvkuTypes.TVkPipelineVertexInputStateCreateInfoArr;
  40. TVkAttachmentDescriptionArr = uvkuTypes.TVkAttachmentDescriptionArr;
  41. TVkSubpassDescriptionArr = uvkuTypes.TVkSubpassDescriptionArr;
  42. TVkSubpassDependencyArr = uvkuTypes.TVkSubpassDependencyArr;
  43. TVkAttachmentReferenceArr = uvkuTypes.TVkAttachmentReferenceArr;
  44. TVkMemoryBarrierArr = uvkuTypes.TVkMemoryBarrierArr;
  45. TVkBufferMemoryBarrierArr = uvkuTypes.TVkBufferMemoryBarrierArr;
  46. TVkImageMemoryBarrierArr = uvkuTypes.TVkImageMemoryBarrierArr;
  47. TVkUint32List = uvkuTypes.TVkUint32List;
  48. TVkFloatList = uvkuTypes.TVkFloatList;
  49. TVkImageViewList = uvkuTypes.TVkImageViewList;
  50. TVkSamplerList = uvkuTypes.TVkSamplerList;
  51. TVkDescriptorSetLayoutList = uvkuTypes.TVkDescriptorSetLayoutList;
  52. TvkuAllocationHandler = uvkuAllocationHandler.TvkuAllocationHandler;
  53. TvkuDebugReporter = uvkuDebugReporter.TvkuDebugReporter;
  54. TvkuConsoleDebugReporter = uvkuDebugReporter.TvkuConsoleDebugReporter;
  55. { Instance }
  56. TvkuInstance = uvkuInstance.TvkuInstance;
  57. TvkuInstanceFactory = uvkuInstanceFactory.TvkuInstanceFactory;
  58. { Device }
  59. TvkuPhysicalDevice = uvkuPhysicalDevice.TvkuPhysicalDevice;
  60. TvkuDevice = uvkuDevice.TvkuDevice;
  61. TvkuDeviceFactory = uvkuDeviceFactory.TvkuDeviceFactory;
  62. TvkuDeviceMemory = uvkuDeviceMemory.TvkuDeviceMemory;
  63. TvkuQueue = uvkuQueue.TvkuQueue;
  64. { Surface }
  65. TvkuSurface = uvkuSurface.TvkuSurface;
  66. TvkuSurfaceFactory = uvkuSurfaceFactory.TvkuSurfaceFactory;
  67. { SwapChain }
  68. TvkuSwapChain = uvkuSwapChain.TvkuSwapChain;
  69. TvkuSwapChainFactory = uvkuSwapChainFactory.TvkuSwapChainFactory;
  70. { Image }
  71. TvkuImage = uvkuImage.TvkuImage;
  72. TvkuImageFactory = uvkuImageFactory.TvkuImageFactory;
  73. TvkuImageView = uvkuImageView.TvkuImageView;
  74. TvkuImageViewFactory = uvkuImageViewFactory.TvkuImageViewFactory;
  75. { Buffer }
  76. TvkuBuffer = uvkuBuffer.TvkuBuffer;
  77. TvkuBufferFactory = uvkuBufferFactory.TvkuBufferFactory;
  78. TvkuBufferView = uvkuBufferView.TvkuBufferView;
  79. TvkuBufferViewFactory = uvkuBufferViewFactory.TvkuBufferViewFactory;
  80. { Commands }
  81. TvkuCommandPool = uvkuCommandPool.TvkuCommandPool;
  82. TvkuCommandPoolFactory = uvkuCommandPoolFactory.TvkuCommandPoolFactory;
  83. TvkuCommandBuffer = uvkuCommandBuffer.TvkuCommandBuffer;
  84. { RenderPass }
  85. TvkuRenderPass = uvkuRenderPass.TvkuRenderPass;
  86. TvkuRenderPassFactory = uvkuRenderPassFactory.TvkuRenderPassFactory;
  87. { FrameBuffer }
  88. TvkuFrameBuffer = uvkuFrameBuffer.TvkuFrameBuffer;
  89. TvkuFrameBufferFactory = uvkuFrameBufferFactory.TvkuFrameBufferFactory;
  90. { DescriptorSetLayout }
  91. TvkuDescriptorSetLayout = uvkuDescriptorSetLayout.TvkuDescriptorSetLayout;
  92. TvkuDescriptorSetLayoutFactory = uvkuDescriptorSetLayoutFactory.TvkuDescriptorSetLayoutFactory;
  93. { Shader Modules }
  94. TvkuShaderModule = uvkuShaderModule.TvkuShaderModule;
  95. TvkuShaderModuleFactory = uvkuShaderModuleFactory.TvkuShaderModuleFactory;
  96. { Pipeline }
  97. TvkuPipelineLayout = uvkuPipelineLayout.TvkuPipelineLayout;
  98. TvkuPipelineLayoutFactory = uvkuPipelineLayoutFactory.TvkuPipelineLayoutFactory;
  99. TvkuPipelineCache = uvkuPipelineCache.TvkuPipelineCache;
  100. TvkuPipelineCacheFactory = uvkuPipelineCacheFactory.TvkuPipelineCacheFactory;
  101. TvkuPipeline = uvkuPipeline.TvkuPipeline;
  102. TvkuGraphicsPipeline = uvkuPipeline.TvkuGraphicsPipeline;
  103. TvkuGraphicsPipelineFactory = uvkuPipelineFactory.TvkuGraphicsPipelineFactory;
  104. TvkuComputePipeline = uvkuPipeline.TvkuComputePipeline;
  105. TvkuComputePipelineFactory = uvkuPipelineFactory.TvkuComputePipelineFactory;
  106. { Utils }
  107. TvkuException = uvkuUtils.TvkuException;
  108. TvkuErrorException = uvkuUtils.TvkuErrorException;
  109. TvkuInvalidFuncPtrException = uvkuUtils.TvkuInvalidFuncPtrException;
  110. function vkExtent2D(const X, Y: VkUint32): TVkExtent2D;
  111. function vkExtent3D(const X, Y, Z: VkUint32): TVkExtent3D;
  112. implementation
  113. function vkExtent2D(const X, Y: VkUint32): TVkExtent2D;
  114. begin
  115. result.width := x;
  116. result.height := y;
  117. end;
  118. function vkExtent3D(const X, Y, Z: VkUint32): TVkExtent3D;
  119. begin
  120. result.width := x;
  121. result.height := y;
  122. result.depth := z;
  123. end;
  124. end.