29 lines
787 B
C++
29 lines
787 B
C++
#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_; }
|
|
};
|
|
}
|