Вынес управление VkDescriptorSetLayout и VkPipeline в отдельные классы

This commit is contained in:
Jiga228
2026-06-25 20:08:11 +07:00
parent 2a57a30e29
commit 5f3c5d4fc1
11 changed files with 277 additions and 196 deletions
@@ -0,0 +1,28 @@
#pragma once
#include <vulkan/vulkan.h>
#include <string>
namespace VkObjects
{
class DescriptorSetLayout;
class RenderPass;
class Swapchain;
class Device;
class Pipeline
{
VkPipeline pipeline_ = nullptr;
VkPipelineLayout pipeline_layout_ = nullptr;
const Device& device_;
VkShaderModule create_shader_module(const Device& device, const std::string& code) const;
public:
Pipeline(const Device& device, const Swapchain& swapchain,
const RenderPass& render_pass, const DescriptorSetLayout& layout_binding);
~Pipeline();
inline VkPipeline get_native() const { return pipeline_; }
inline VkPipelineLayout get_layout() const { return pipeline_layout_; }
};
}