Attempted to use the vulkan.hpp but it's too much C++ for this. It took 5 hours to just get this one file converted.

This commit is contained in:
Zed A. Shaw 2025-12-07 14:48:34 -05:00
parent a996440c61
commit 24ae3705c9

View file

@ -1,93 +1,76 @@
#include <vk_initializers.h> #include <vk_initializers.h>
// #if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
//
#define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS 1
#define VULKAN_HPP_NO_CONSTRUCTORS 1
#include <vulkan/vulkan.hpp>
VkCommandPoolCreateInfo vkinit::command_pool_create_info(uint32_t queueFamilyIndex, VkCommandPoolCreateInfo vkinit::command_pool_create_info(uint32_t queueFamilyIndex,
VkCommandPoolCreateFlags flags /*= 0*/) VkCommandPoolCreateFlags flags /*= 0*/)
{ {
VkCommandPoolCreateInfo info = {}; return vk::CommandPoolCreateInfo{
info.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; .flags=vk::CommandPoolCreateFlags(flags),
info.pNext = nullptr; .queueFamilyIndex=queueFamilyIndex
info.queueFamilyIndex = queueFamilyIndex; };
info.flags = flags;
return info;
} }
VkCommandBufferAllocateInfo vkinit::command_buffer_allocate_info( VkCommandBufferAllocateInfo vkinit::command_buffer_allocate_info(
VkCommandPool pool, uint32_t count /*= 1*/) VkCommandPool pool, uint32_t count /*= 1*/)
{ {
VkCommandBufferAllocateInfo info = {}; return vk::CommandBufferAllocateInfo{
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; .commandPool=pool,
info.pNext = nullptr; .level=vk::CommandBufferLevel::ePrimary,
.commandBufferCount=count
info.commandPool = pool; };
info.commandBufferCount = count;
info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
return info;
} }
VkFenceCreateInfo vkinit::fence_create_info(VkFenceCreateFlags flags /*=0*/) VkFenceCreateInfo vkinit::fence_create_info(VkFenceCreateFlags flags /*=0*/)
{ {
VkFenceCreateInfo info = {}; return vk::FenceCreateInfo{
info.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; .flags=vk::FenceCreateFlags(flags)
info.pNext = nullptr; };
info.flags = flags;
return info;
} }
VkSemaphoreCreateInfo vkinit::semaphore_create_info(VkSemaphoreCreateFlags flags/*=0*/) VkSemaphoreCreateInfo vkinit::semaphore_create_info(VkSemaphoreCreateFlags flags/*=0*/)
{ {
VkSemaphoreCreateInfo info = {}; return vk::SemaphoreCreateInfo{
info.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; .flags=vk::SemaphoreCreateFlags(flags)
info.pNext = nullptr; };
info.flags = flags;
return info;
} }
VkCommandBufferBeginInfo vkinit::command_buffer_begin_info(VkCommandBufferUsageFlags flags /*= 0*/) VkCommandBufferBeginInfo vkinit::command_buffer_begin_info(VkCommandBufferUsageFlags flags /*= 0*/)
{ {
VkCommandBufferBeginInfo info = {}; return vk::CommandBufferBeginInfo{
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; .flags=vk::CommandBufferUsageFlags(flags)
info.pNext = nullptr; };
info.pInheritanceInfo = nullptr;
info.flags = flags;
return info;
} }
VkImageSubresourceRange vkinit::image_subresource_range(VkImageAspectFlags aspectMask) VkImageSubresourceRange vkinit::image_subresource_range(VkImageAspectFlags aspectMask)
{ {
VkImageSubresourceRange subImage {}; return vk::ImageSubresourceRange{
subImage.aspectMask = aspectMask; vk::ImageAspectFlags(aspectMask),
subImage.baseMipLevel = 0; 0, VK_REMAINING_MIP_LEVELS, 0, VK_REMAINING_ARRAY_LAYERS
subImage.levelCount = VK_REMAINING_MIP_LEVELS; };
subImage.baseArrayLayer = 0;
subImage.layerCount = VK_REMAINING_ARRAY_LAYERS;
return subImage;
} }
VkSemaphoreSubmitInfo vkinit::semaphore_submit_info(VkPipelineStageFlags2 stageMask, VkSemaphore semaphore) VkSemaphoreSubmitInfo vkinit::semaphore_submit_info(VkPipelineStageFlags2 stageMask, VkSemaphore semaphore)
{ {
VkSemaphoreSubmitInfo submitInfo{}; return vk::SemaphoreSubmitInfo{
submitInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO; .semaphore=vk::Semaphore{semaphore},
submitInfo.pNext = nullptr; .value=1,
submitInfo.semaphore = semaphore; .stageMask=vk::PipelineStageFlags2{stageMask},
submitInfo.stageMask = stageMask; .deviceIndex=0,
submitInfo.deviceIndex = 0; };
submitInfo.value = 1;
return submitInfo;
} }
VkCommandBufferSubmitInfo vkinit::command_buffer_submit_info(VkCommandBuffer cmd) VkCommandBufferSubmitInfo vkinit::command_buffer_submit_info(VkCommandBuffer cmd)
{ {
VkCommandBufferSubmitInfo info{}; return vk::CommandBufferSubmitInfo{
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO; .commandBuffer=cmd, // commandBuffer
info.pNext = nullptr; .deviceMask=0, // deviceMask
info.commandBuffer = cmd; };
info.deviceMask = 0;
return info;
} }
VkSubmitInfo2 vkinit::submit_info(VkCommandBufferSubmitInfo* cmd, VkSemaphoreSubmitInfo* signalSemaphoreInfo, VkSubmitInfo2 vkinit::submit_info(VkCommandBufferSubmitInfo* cmd, VkSemaphoreSubmitInfo* signalSemaphoreInfo,
@ -111,58 +94,56 @@ VkSubmitInfo2 vkinit::submit_info(VkCommandBufferSubmitInfo* cmd, VkSemaphoreSub
VkImageCreateInfo vkinit::image_create_info(VkFormat format, VkImageUsageFlags usageFlags, VkExtent3D extent) VkImageCreateInfo vkinit::image_create_info(VkFormat format, VkImageUsageFlags usageFlags, VkExtent3D extent)
{ {
VkImageCreateInfo info{}; return vk::ImageCreateInfo{
info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; .flags=vk::ImageCreateFlags(0),
info.pNext = nullptr; .imageType=vk::ImageType::e2D,
.format=vk::Format{format},
info.imageType = VK_IMAGE_TYPE_2D; .extent=vk::Extent3D{extent.width, extent.height, extent.depth},
.mipLevels=1,
info.format = format; .arrayLayers=1,
info.extent = extent; .samples=vk::SampleCountFlagBits::e1,
.tiling=vk::ImageTiling::eOptimal,
info.mipLevels = 1; .usage=vk::ImageUsageFlags{usageFlags},
info.arrayLayers = 1; };
info.samples = VK_SAMPLE_COUNT_1_BIT;
info.tiling = VK_IMAGE_TILING_OPTIMAL;
info.usage = usageFlags;
return info;
} }
VkImageViewCreateInfo vkinit::imageview_create_info(VkFormat format, VkImage image, VkImageAspectFlags aspectFlags) VkImageViewCreateInfo vkinit::imageview_create_info(VkFormat format, VkImage image, VkImageAspectFlags aspectFlags)
{ {
VkImageViewCreateInfo info{}; return vk::ImageViewCreateInfo{
info.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; .image=image,
info.pNext = nullptr; .viewType=vk::ImageViewType::e2D,
.format=vk::Format{format},
info.viewType = VK_IMAGE_VIEW_TYPE_2D; .subresourceRange{
info.image = image; .aspectMask=vk::ImageAspectFlags{aspectFlags},
info.format = format; .baseMipLevel=0,
info.subresourceRange.baseMipLevel = 0; .levelCount=1,
info.subresourceRange.levelCount = 1; .baseArrayLayer=0,
info.subresourceRange.baseArrayLayer = 0; .layerCount=1,
info.subresourceRange.layerCount = 1; }
info.subresourceRange.aspectMask = aspectFlags; };
return info;
} }
VkRenderingAttachmentInfo vkinit::attachment_info( VkRenderingAttachmentInfo vkinit::attachment_info(
VkImageView view, VkClearValue* clear ,VkImageLayout layout /*= VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL*/) VkImageView view, VkClearValue* clear ,VkImageLayout layout /*= VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL*/)
{ {
VkRenderingAttachmentInfo colorAttachment {}; vk::RenderingAttachmentInfo colorAttachment{
colorAttachment.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; .imageView=view,
colorAttachment.pNext = nullptr; .imageLayout=vk::ImageLayout(layout),
.loadOp=vk::AttachmentLoadOp(clear ? VK_ATTACHMENT_LOAD_OP_CLEAR : VK_ATTACHMENT_LOAD_OP_LOAD),
colorAttachment.imageView = view; .storeOp=vk::AttachmentStoreOp(VK_ATTACHMENT_STORE_OP_STORE),
colorAttachment.imageLayout = layout; };
colorAttachment.loadOp = clear ? VK_ATTACHMENT_LOAD_OP_CLEAR : VK_ATTACHMENT_LOAD_OP_LOAD;
colorAttachment.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
if (clear) { if (clear) {
colorAttachment.clearValue = *clear; vk::ArrayWrapper1D<float, 4> thefuckingcolor{{
clear->color.float32[0],
clear->color.float32[1],
clear->color.float32[2],
clear->color.float32[3],
}};
colorAttachment.clearValue = vk::ClearValue{
.color = thefuckingcolor
};
} }
return colorAttachment; return colorAttachment;