unit VulkanUtils; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Vulkan, uvkuTypes, uvkuAllocationHandler, uvkuDebugReporter, uvkuInstance, uvkuInstanceFactory, uvkuPhysicalDevice, uvkuDevice, uvkuDeviceFactory, uvkuDeviceMemory, uvkuQueue, uvkuSurface, uvkuSurfaceFactory, uvkuSwapChain, uvkuSwapChainFactory, uvkuImage, uvkuImageFactory, uvkuImageView, uvkuImageViewFactory, uvkuBuffer, uvkuBufferFactory, uvkuBufferView, uvkuBufferViewFactory, uvkuCommandPool, uvkuCommandPoolFactory, uvkuCommandBuffer, uvkuRenderPass, uvkuRenderPassFactory, uvkuFrameBuffer, uvkuFrameBufferFactory, uvkuDescriptorSetLayout, uvkuDescriptorSetLayoutFactory, uvkuShaderModule, uvkuShaderModuleFactory, uvkuPipelineLayout, uvkuPipelineLayoutFactory, uvkuPipelineCache, uvkuPipelineCacheFactory, uvkuPipeline, uvkuPipelineFactory, uvkuDescriptorPool, uvkuDescriptorPoolFactory, uvkuDescriptorSet, uvkuSemaphore, uvkuUtils; type { Types } PVkCharArr = uvkuTypes.PVkCharArr; TVkPhysicalDeviceArr = uvkuTypes.TVkPhysicalDeviceArr; TVkQueueFamilyPropertiesArr = uvkuTypes.TVkQueueFamilyPropertiesArr; TVkSparseImageFormatPropertiesArr = uvkuTypes.TVkSparseImageFormatPropertiesArr; TVkSurfaceFormatArr = uvkuTypes.TVkSurfaceFormatArr; TVkPresentModeArr = uvkuTypes.TVkPresentModeArr; TVkDisplayPropertiesArr = uvkuTypes.TVkDisplayPropertiesArr; TVkDisplayPlanePropertiesArr = uvkuTypes.TVkDisplayPlanePropertiesArr; TVkDisplayArr = uvkuTypes.TVkDisplayArr; TVkDisplayModePropertiesArr = uvkuTypes.TVkDisplayModePropertiesArr; TVkImageArr = uvkuTypes.TVkImageArr; TVkCommandBufferArr = uvkuTypes.TVkCommandBufferArr; TVkDescriptorSetLayoutBindingArr = uvkuTypes.TVkDescriptorSetLayoutBindingArr; TVkDescriptorSetLayoutArr = uvkuTypes.TVkDescriptorSetLayoutArr; TVkPushConstantRangeArr = uvkuTypes.TVkPushConstantRangeArr; TVkPipelineShaderStageCreateInfoArr = uvkuTypes.TVkPipelineShaderStageCreateInfoArr; TVkPipelineVertexInputStateCreateInfoArr = uvkuTypes.TVkPipelineVertexInputStateCreateInfoArr; TVkAttachmentDescriptionArr = uvkuTypes.TVkAttachmentDescriptionArr; TVkSubpassDescriptionArr = uvkuTypes.TVkSubpassDescriptionArr; TVkSubpassDependencyArr = uvkuTypes.TVkSubpassDependencyArr; TVkAttachmentReferenceArr = uvkuTypes.TVkAttachmentReferenceArr; TVkMemoryBarrierArr = uvkuTypes.TVkMemoryBarrierArr; TVkBufferMemoryBarrierArr = uvkuTypes.TVkBufferMemoryBarrierArr; TVkImageMemoryBarrierArr = uvkuTypes.TVkImageMemoryBarrierArr; TVkUint32List = uvkuTypes.TVkUint32List; TVkFloatList = uvkuTypes.TVkFloatList; TVkImageViewList = uvkuTypes.TVkImageViewList; TVkSamplerList = uvkuTypes.TVkSamplerList; TVkDescriptorSetLayoutList = uvkuTypes.TVkDescriptorSetLayoutList; TvkuAllocationHandler = uvkuAllocationHandler.TvkuAllocationHandler; TvkuDebugReporter = uvkuDebugReporter.TvkuDebugReporter; TvkuConsoleDebugReporter = uvkuDebugReporter.TvkuConsoleDebugReporter; { Instance } TvkuInstance = uvkuInstance.TvkuInstance; TvkuInstanceFactory = uvkuInstanceFactory.TvkuInstanceFactory; { Device } TvkuPhysicalDevice = uvkuPhysicalDevice.TvkuPhysicalDevice; TvkuDevice = uvkuDevice.TvkuDevice; TvkuDeviceFactory = uvkuDeviceFactory.TvkuDeviceFactory; TvkuDeviceMemory = uvkuDeviceMemory.TvkuDeviceMemory; TvkuQueue = uvkuQueue.TvkuQueue; { Surface } TvkuSurface = uvkuSurface.TvkuSurface; TvkuSurfaceFactory = uvkuSurfaceFactory.TvkuSurfaceFactory; { SwapChain } TvkuSwapChain = uvkuSwapChain.TvkuSwapChain; TvkuSwapChainFactory = uvkuSwapChainFactory.TvkuSwapChainFactory; { Image } TvkuImage = uvkuImage.TvkuImage; TvkuImageFactory = uvkuImageFactory.TvkuImageFactory; TvkuImageView = uvkuImageView.TvkuImageView; TvkuImageViewFactory = uvkuImageViewFactory.TvkuImageViewFactory; { Buffer } TvkuBuffer = uvkuBuffer.TvkuBuffer; TvkuBufferFactory = uvkuBufferFactory.TvkuBufferFactory; TvkuBufferView = uvkuBufferView.TvkuBufferView; TvkuBufferViewFactory = uvkuBufferViewFactory.TvkuBufferViewFactory; { Commands } TvkuCommandPool = uvkuCommandPool.TvkuCommandPool; TvkuCommandPoolFactory = uvkuCommandPoolFactory.TvkuCommandPoolFactory; TvkuCommandBuffer = uvkuCommandBuffer.TvkuCommandBuffer; { RenderPass } TvkuRenderPass = uvkuRenderPass.TvkuRenderPass; TvkuRenderPassFactory = uvkuRenderPassFactory.TvkuRenderPassFactory; { FrameBuffer } TvkuFrameBuffer = uvkuFrameBuffer.TvkuFrameBuffer; TvkuFrameBufferFactory = uvkuFrameBufferFactory.TvkuFrameBufferFactory; { DescriptorSetLayout } TvkuDescriptorSetLayout = uvkuDescriptorSetLayout.TvkuDescriptorSetLayout; TvkuDescriptorSetLayoutFactory = uvkuDescriptorSetLayoutFactory.TvkuDescriptorSetLayoutFactory; { Shader Modules } TvkuShaderModule = uvkuShaderModule.TvkuShaderModule; TvkuShaderModuleFactory = uvkuShaderModuleFactory.TvkuShaderModuleFactory; { Pipeline } TvkuPipelineLayout = uvkuPipelineLayout.TvkuPipelineLayout; TvkuPipelineLayoutFactory = uvkuPipelineLayoutFactory.TvkuPipelineLayoutFactory; TvkuPipelineCache = uvkuPipelineCache.TvkuPipelineCache; TvkuPipelineCacheFactory = uvkuPipelineCacheFactory.TvkuPipelineCacheFactory; TvkuPipeline = uvkuPipeline.TvkuPipeline; TvkuGraphicsPipeline = uvkuPipeline.TvkuGraphicsPipeline; TvkuGraphicsPipelineFactory = uvkuPipelineFactory.TvkuGraphicsPipelineFactory; TvkuComputePipeline = uvkuPipeline.TvkuComputePipeline; TvkuComputePipelineFactory = uvkuPipelineFactory.TvkuComputePipelineFactory; { DescriptorPool } TvkuDescriptorPool = uvkuDescriptorPool.TvkuDescriptorPool; TvkuDescriptorPoolFactory = uvkuDescriptorPoolFactory.TvkuDescriptorPoolFactory; TvkuDescriptorSet = uvkuDescriptorSet.TvkuDescriptorSet; { Semaphore } TvkuSemaphore = uvkuSemaphore.TvkuSemaphore; { Utils } TvkuException = uvkuUtils.TvkuException; TvkuErrorException = uvkuUtils.TvkuErrorException; TvkuInvalidFuncPtrException = uvkuUtils.TvkuInvalidFuncPtrException; function vkExtent2D(const X, Y: VkUint32): TVkExtent2D; function vkExtent3D(const X, Y, Z: VkUint32): TVkExtent3D; implementation function vkExtent2D(const X, Y: VkUint32): TVkExtent2D; begin result.width := x; result.height := y; end; function vkExtent3D(const X, Y, Z: VkUint32): TVkExtent3D; begin result.width := x; result.height := y; result.depth := z; end; end.