Crafter.Graphics/Crafter.Graphics-VulkanElement.cpp

25 lines
1,022 B
C++
Raw Normal View History

2025-04-26 20:49:56 +02:00
module;
#include <cstdint>
#include <vulkan/vulkan.h>
2025-04-26 23:05:11 +02:00
#include "VulkanInitializers.hpp"
2025-04-26 20:49:56 +02:00
module Crafter.Graphics;
using namespace Crafter;
2025-04-26 23:05:11 +02:00
VulkanElement::VulkanElement(VkPipelineLayout pipelineLayout, VkPipeline pipeline) : pipelineLayout(pipelineLayout), pipeline(pipeline) {
2025-04-26 20:49:56 +02:00
}
2025-04-26 23:05:11 +02:00
VulkanElement::VulkanElement(VkPipelineLayout pipelineLayout, VkPipeline pipeline, std::uint32_t sizeX, std::uint32_t sizeY, std::uint32_t sizeZ) : pipelineLayout(pipelineLayout), pipeline(pipeline), sizeX(sizeX), sizeY(sizeY), sizeZ(sizeZ) {
2025-04-26 20:49:56 +02:00
2025-04-26 23:05:11 +02:00
}
void VulkanElement::WriteDescriptor(VkWriteDescriptorSet* set, std::uint32_t count) {
vkUpdateDescriptorSets(VulkanDevice::device, count, set, 0, nullptr);
}
void VulkanElement::WriteDescriptor(std::uint32_t stage, VkDescriptorType type, std::uint32_t binding, VkDescriptorBufferInfo* buffer) {
VkWriteDescriptorSet write = vks::initializers::writeDescriptorSet(descriptorSet[stage], type, binding, buffer);
vkUpdateDescriptorSets(VulkanDevice::device, 1, &write, 0, nullptr);
}