From b35b12d1dc97eb2632fb71086573e7c6022a3aef Mon Sep 17 00:00:00 2001 From: hodasemi Date: Tue, 10 Jan 2023 19:41:45 +0100 Subject: [PATCH] prepare more function loading --- src/lib.rs | 295 ++++++++++++++++++++++++++--------------------------- 1 file changed, 147 insertions(+), 148 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index c436657..b75d496 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -118,157 +118,156 @@ fn get_function(function_name: *const c_char) -> PFN_vkVoidFunction { ); cmp_device_fn!(s, { - [device_functions, vkGetDeviceQueue], - [device_functions, vkQueueSubmit], - [device_functions, vkQueueWaitIdle], - [device_functions, vkDeviceWaitIdle], - [device_functions, vkAllocateMemory], - [device_functions, vkFreeMemory], - [device_functions, vkMapMemory], - [device_functions, vkUnmapMemory], - [device_functions, vkBindBufferMemory], - [device_functions, vkBindImageMemory], - [device_functions, vkGetBufferMemoryRequirements], - [device_functions, vkGetImageMemoryRequirements], - [device_functions, vkCreateFence], - [device_functions, vkDestroyFence], - [device_functions, vkResetFences], - [device_functions, vkWaitForFences], - [device_functions, vkCreateSemaphore], - [device_functions, vkDestroySemaphore], - [device_functions, vkCreateEvent], - [device_functions, vkDestroyEvent], - [device_functions, vkGetEventStatus], - [device_functions, vkSetEvent], - [device_functions, vkResetEvent], - [device_functions, vkCreateBuffer], - [device_functions, vkDestroyBuffer], - [device_functions, vkCreateBufferView], - [device_functions, vkDestroyBufferView], - [device_functions, vkCreateImage], - [device_functions, vkDestroyImage], - [device_functions, vkGetImageSubresourceLayout], - [device_functions, vkCreateImageView], - [device_functions, vkDestroyImageView], - [device_functions, vkCreateShaderModule], - [device_functions, vkDestroyShaderModule], - [device_functions, vkCreatePipelineCache], - [device_functions, vkDestroyPipelineCache], - [device_functions, vkGetPipelineCacheData], - [device_functions, vkMergePipelineCaches], - [device_functions, vkCreateGraphicsPipelines], - [device_functions, vkCreateComputePipelines], - [device_functions, vkDestroyPipeline], - [device_functions, vkCreatePipelineLayout], - [device_functions, vkDestroyPipelineLayout], - [device_functions, vkCreateSampler], - [device_functions, vkDestroySampler], - [device_functions, vkCreateDescriptorSetLayout], - [device_functions, vkDestroyDescriptorSetLayout], - [device_functions, vkCreateDescriptorPool], - [device_functions, vkDestroyDescriptorPool], - [device_functions, vkResetDescriptorPool], - [device_functions, vkAllocateDescriptorSets], - [device_functions, vkFreeDescriptorSets], - [device_functions, vkUpdateDescriptorSets], - [device_functions, vkCreateFramebuffer], - [device_functions, vkDestroyFramebuffer], - [device_functions, vkCreateRenderPass], - [device_functions, vkDestroyRenderPass], - [device_functions, vkCreateCommandPool], - [device_functions, vkDestroyCommandPool], - [device_functions, vkResetCommandPool], - [device_functions, vkAllocateCommandBuffers], - [device_functions, vkFreeCommandBuffers], - [device_functions, vkBeginCommandBuffer], - [device_functions, vkEndCommandBuffer], - [device_functions, vkResetCommandBuffer], - [device_functions, vkCmdBindPipeline], - [device_functions, vkCmdSetViewport], - [device_functions, vkCmdSetScissor], - [device_functions, vkCmdSetLineWidth], - [device_functions, vkCmdSetDepthBias], - [device_functions, vkCmdSetBlendConstants], - [device_functions, vkCmdSetDepthBounds], - [device_functions, vkCmdSetStencilCompareMask], - [device_functions, vkCmdSetStencilWriteMask], - [device_functions, vkCmdSetStencilReference], - [device_functions, vkCmdBindDescriptorSets], - [device_functions, vkCmdBindIndexBuffer], - [device_functions, vkCmdBindVertexBuffers], - [device_functions, vkCmdDraw], - [device_functions, vkCmdDispatch], - [device_functions, vkCmdCopyBuffer], - [device_functions, vkCmdCopyImage], - [device_functions, vkCmdBlitImage], - [device_functions, vkCmdCopyBufferToImage], - [device_functions, vkCmdCopyImageToBuffer], - [device_functions, vkCmdUpdateBuffer], - [device_functions, vkCmdFillBuffer], - [device_functions, vkCmdClearColorImage], - [device_functions, vkCmdClearDepthStencilImage], - [device_functions, vkCmdClearAttachments], - [device_functions, vkCmdResolveImage], - [device_functions, vkCmdSetEvent], - [device_functions, vkCmdResetEvent], - [device_functions, vkCmdWaitEvents], - [device_functions, vkCmdPipelineBarrier], - [device_functions, vkCmdPushConstants], - [device_functions, vkCmdBeginRenderPass], - [device_functions, vkCmdNextSubpass], - [device_functions, vkCmdEndRenderPass], - [device_functions, vkCmdExecuteCommands], - [device_functions, vkTrimCommandPool], - [device_functions, vkGetBufferDeviceAddress], - [device_functions, vkGetBufferMemoryRequirements2], - [device_functions, vkGetImageMemoryRequirements2], - [device_functions, vkBindBufferMemory2], - [device_functions, vkBindImageMemory2], - [device_wsi_functions, vkCreateSwapchainKHR], - [device_wsi_functions, vkDestroySwapchainKHR], - [device_wsi_functions, vkAcquireNextImageKHR], - [device_wsi_functions, vkQueuePresentKHR], - [device_wsi_functions, vkGetSwapchainImagesKHR], - [acceleration_structure_functions, vkBuildAccelerationStructuresKHR], - [acceleration_structure_functions, vkCmdBuildAccelerationStructuresIndirectKHR], - [acceleration_structure_functions, vkCmdBuildAccelerationStructuresKHR], - [acceleration_structure_functions, vkCmdCopyAccelerationStructureKHR], - [acceleration_structure_functions, vkCmdCopyAccelerationStructureToMemoryKHR], - [acceleration_structure_functions, vkCmdCopyMemoryToAccelerationStructureKHR], - [acceleration_structure_functions, vkCmdWriteAccelerationStructuresPropertiesKHR], - [acceleration_structure_functions, vkCopyAccelerationStructureKHR], - [acceleration_structure_functions, vkCopyAccelerationStructureToMemoryKHR], - [acceleration_structure_functions, vkCopyMemoryToAccelerationStructureKHR], - [acceleration_structure_functions, vkCreateAccelerationStructureKHR], - [acceleration_structure_functions, vkDestroyAccelerationStructureKHR], - [acceleration_structure_functions, vkGetAccelerationStructureBuildSizesKHR], - [acceleration_structure_functions, vkGetAccelerationStructureDeviceAddressKHR], - [acceleration_structure_functions, vkGetDeviceAccelerationStructureCompatibilityKHR], - [acceleration_structure_functions, vkWriteAccelerationStructuresPropertiesKHR], - [ray_tracing_pipeline_functions, vkCmdSetRayTracingPipelineStackSizeKHR], - [ray_tracing_pipeline_functions, vkCmdTraceRaysIndirectKHR], - [ray_tracing_pipeline_functions, vkCmdTraceRaysKHR], - [ray_tracing_pipeline_functions, vkCreateRayTracingPipelinesKHR], - [ray_tracing_pipeline_functions, vkGetRayTracingCaptureReplayShaderGroupHandlesKHR], - [ray_tracing_pipeline_functions, vkGetRayTracingShaderGroupHandlesKHR], - [ray_tracing_pipeline_functions, vkGetRayTracingShaderGroupStackSizeKHR], - [maintenance3_functions, vkGetDescriptorSetLayoutSupport], - - }); + [device_functions, vkGetDeviceQueue], + [device_functions, vkQueueSubmit], + [device_functions, vkQueueWaitIdle], + [device_functions, vkDeviceWaitIdle], + [device_functions, vkAllocateMemory], + [device_functions, vkFreeMemory], + [device_functions, vkMapMemory], + [device_functions, vkUnmapMemory], + [device_functions, vkBindBufferMemory], + [device_functions, vkBindImageMemory], + [device_functions, vkGetBufferMemoryRequirements], + [device_functions, vkGetImageMemoryRequirements], + [device_functions, vkCreateFence], + [device_functions, vkDestroyFence], + [device_functions, vkResetFences], + [device_functions, vkWaitForFences], + [device_functions, vkCreateSemaphore], + [device_functions, vkDestroySemaphore], + [device_functions, vkCreateEvent], + [device_functions, vkDestroyEvent], + [device_functions, vkGetEventStatus], + [device_functions, vkSetEvent], + [device_functions, vkResetEvent], + [device_functions, vkCreateBuffer], + [device_functions, vkDestroyBuffer], + [device_functions, vkCreateBufferView], + [device_functions, vkDestroyBufferView], + [device_functions, vkCreateImage], + [device_functions, vkDestroyImage], + [device_functions, vkGetImageSubresourceLayout], + [device_functions, vkCreateImageView], + [device_functions, vkDestroyImageView], + [device_functions, vkCreateShaderModule], + [device_functions, vkDestroyShaderModule], + [device_functions, vkCreatePipelineCache], + [device_functions, vkDestroyPipelineCache], + [device_functions, vkGetPipelineCacheData], + [device_functions, vkMergePipelineCaches], + [device_functions, vkCreateGraphicsPipelines], + [device_functions, vkCreateComputePipelines], + [device_functions, vkDestroyPipeline], + [device_functions, vkCreatePipelineLayout], + [device_functions, vkDestroyPipelineLayout], + [device_functions, vkCreateSampler], + [device_functions, vkDestroySampler], + [device_functions, vkCreateDescriptorSetLayout], + [device_functions, vkDestroyDescriptorSetLayout], + [device_functions, vkCreateDescriptorPool], + [device_functions, vkDestroyDescriptorPool], + [device_functions, vkResetDescriptorPool], + [device_functions, vkAllocateDescriptorSets], + [device_functions, vkFreeDescriptorSets], + [device_functions, vkUpdateDescriptorSets], + [device_functions, vkCreateFramebuffer], + [device_functions, vkDestroyFramebuffer], + [device_functions, vkCreateRenderPass], + [device_functions, vkDestroyRenderPass], + [device_functions, vkCreateCommandPool], + [device_functions, vkDestroyCommandPool], + [device_functions, vkResetCommandPool], + [device_functions, vkAllocateCommandBuffers], + [device_functions, vkFreeCommandBuffers], + [device_functions, vkBeginCommandBuffer], + [device_functions, vkEndCommandBuffer], + [device_functions, vkResetCommandBuffer], + [device_functions, vkCmdBindPipeline], + [device_functions, vkCmdSetViewport], + [device_functions, vkCmdSetScissor], + [device_functions, vkCmdSetLineWidth], + [device_functions, vkCmdSetDepthBias], + [device_functions, vkCmdSetBlendConstants], + [device_functions, vkCmdSetDepthBounds], + [device_functions, vkCmdSetStencilCompareMask], + [device_functions, vkCmdSetStencilWriteMask], + [device_functions, vkCmdSetStencilReference], + [device_functions, vkCmdBindDescriptorSets], + [device_functions, vkCmdBindIndexBuffer], + [device_functions, vkCmdBindVertexBuffers], + [device_functions, vkCmdDraw], + [device_functions, vkCmdDispatch], + [device_functions, vkCmdCopyBuffer], + [device_functions, vkCmdCopyImage], + [device_functions, vkCmdBlitImage], + [device_functions, vkCmdCopyBufferToImage], + [device_functions, vkCmdCopyImageToBuffer], + [device_functions, vkCmdUpdateBuffer], + [device_functions, vkCmdFillBuffer], + [device_functions, vkCmdClearColorImage], + [device_functions, vkCmdClearDepthStencilImage], + [device_functions, vkCmdClearAttachments], + [device_functions, vkCmdResolveImage], + [device_functions, vkCmdSetEvent], + [device_functions, vkCmdResetEvent], + [device_functions, vkCmdWaitEvents], + [device_functions, vkCmdPipelineBarrier], + [device_functions, vkCmdPushConstants], + [device_functions, vkCmdBeginRenderPass], + [device_functions, vkCmdNextSubpass], + [device_functions, vkCmdEndRenderPass], + [device_functions, vkCmdExecuteCommands], + [device_functions, vkTrimCommandPool], + [device_functions, vkGetBufferDeviceAddress], + [device_functions, vkGetBufferMemoryRequirements2], + [device_functions, vkGetImageMemoryRequirements2], + [device_functions, vkBindBufferMemory2], + [device_functions, vkBindImageMemory2], + [device_wsi_functions, vkCreateSwapchainKHR], + [device_wsi_functions, vkDestroySwapchainKHR], + [device_wsi_functions, vkAcquireNextImageKHR], + [device_wsi_functions, vkQueuePresentKHR], + [device_wsi_functions, vkGetSwapchainImagesKHR], + [acceleration_structure_functions, vkBuildAccelerationStructuresKHR], + [acceleration_structure_functions, vkCmdBuildAccelerationStructuresIndirectKHR], + [acceleration_structure_functions, vkCmdBuildAccelerationStructuresKHR], + [acceleration_structure_functions, vkCmdCopyAccelerationStructureKHR], + [acceleration_structure_functions, vkCmdCopyAccelerationStructureToMemoryKHR], + [acceleration_structure_functions, vkCmdCopyMemoryToAccelerationStructureKHR], + [acceleration_structure_functions, vkCmdWriteAccelerationStructuresPropertiesKHR], + [acceleration_structure_functions, vkCopyAccelerationStructureKHR], + [acceleration_structure_functions, vkCopyAccelerationStructureToMemoryKHR], + [acceleration_structure_functions, vkCopyMemoryToAccelerationStructureKHR], + [acceleration_structure_functions, vkCreateAccelerationStructureKHR], + [acceleration_structure_functions, vkDestroyAccelerationStructureKHR], + [acceleration_structure_functions, vkGetAccelerationStructureBuildSizesKHR], + [acceleration_structure_functions, vkGetAccelerationStructureDeviceAddressKHR], + [acceleration_structure_functions, vkGetDeviceAccelerationStructureCompatibilityKHR], + [acceleration_structure_functions, vkWriteAccelerationStructuresPropertiesKHR], + [ray_tracing_pipeline_functions, vkCmdSetRayTracingPipelineStackSizeKHR], + [ray_tracing_pipeline_functions, vkCmdTraceRaysIndirectKHR], + [ray_tracing_pipeline_functions, vkCmdTraceRaysKHR], + [ray_tracing_pipeline_functions, vkCreateRayTracingPipelinesKHR], + [ray_tracing_pipeline_functions, vkGetRayTracingCaptureReplayShaderGroupHandlesKHR], + [ray_tracing_pipeline_functions, vkGetRayTracingShaderGroupHandlesKHR], + [ray_tracing_pipeline_functions, vkGetRayTracingShaderGroupStackSizeKHR], + [maintenance3_functions, vkGetDescriptorSetLayoutSupport], + } + ); match s { - "vkCreateDevice" => Functions::CreateDevice(create_device), - "vkDestroyDevice" => Functions::DestroyDevice(destroy_device), - "vkCreateInstance" => Functions::CreateInstance(create_instance), - "vkDestroyInstance" => Functions::DestroyInstance(destroy_instance), + "vkCreateDevice" => return Functions::CreateDevice(create_device).convert(), + "vkDestroyDevice" => return Functions::DestroyDevice(destroy_device).convert(), + "vkCreateInstance" => return Functions::CreateInstance(create_instance).convert(), + "vkDestroyInstance" => return Functions::DestroyInstance(destroy_instance).convert(), - _ => { - write_log(format!("\trequested fn: {}", s)); - write_log(format!("\t-> not found")); - Functions::Null - } - } - .convert() + _ => (), + }; + + write_log(format!("\trequested fn: {}", s)); + write_log(format!("\t-> not found")); + Functions::Null.convert() } extern "system" fn create_instance(