35 lines
601 B
C++
35 lines
601 B
C++
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
#include <vulkan/vulkan.h>
|
|
|
|
#include "program.h"
|
|
|
|
namespace Engine {
|
|
class LogicalDevice;
|
|
|
|
class Pipeline {
|
|
public:
|
|
Pipeline(const Program& program, LogicalDevice* device);
|
|
Pipeline(const Pipeline& other);
|
|
~Pipeline();
|
|
|
|
void bind(const VkCommandBuffer& buffer) const;
|
|
|
|
private:
|
|
void createLayout();
|
|
void createPipeline();
|
|
VkShaderModule createShaderModule(Program::ShaderType type);
|
|
|
|
private:
|
|
LogicalDevice* device;
|
|
const Program& program;
|
|
VkPipeline vk;
|
|
VkPipelineLayout layout;
|
|
};
|
|
|
|
}
|