Kompute
Loading...
Searching...
No Matches
Shader.hpp
1#pragma once
2
3#include "kompute/Core.hpp"
4#include "logger/Logger.hpp"
5#include <memory>
6
7namespace kp {
8
9// forward declarations for std::shared_from_this
10class Shader;
11
12/*
13 * Wrapper for Vulkan's shader modules.
14 */
15class Shader
16{
17 // not-owned resources
18 std::shared_ptr<vk::Device> mDevice;
19
20 // owned resources
21 vk::ShaderModule mShaderModule;
22 bool mDestroyed = false;
23
24public:
25
31 Shader(const std::shared_ptr<vk::Device>& device,
32 const std::vector<uint32_t>& spv);
33
37 const vk::ShaderModule& getShaderModule();
38
39 void destroy();
40
41 ~Shader();
42};
43
44} // End namespace kp
Definition Shader.hpp:16
Shader(const std::shared_ptr< vk::Device > &device, const std::vector< uint32_t > &spv)
const vk::ShaderModule & getShaderModule()