RavEngine
Loading...
Searching...
No Matches
VkShaderLibrary.hpp
1#pragma once
2#include <RGL/Types.hpp>
3#include <RGL/ShaderLibrary.hpp>
4#include "VkDevice.hpp"
5#include <volk.h>
6#include <span>
7#include <filesystem>
8#include "VkPipelineLibraryShared.hpp"
9
10namespace RGL {
12 const std::shared_ptr<DeviceVk> owningDevice;
13 VkShaderModule shaderModule = VK_NULL_HANDLE;
14
15 BufferBindingStore bindingInfo;
16
17 ShaderLibraryVk(decltype(owningDevice));
18 ShaderLibraryVk(decltype(owningDevice), const std::span<const uint8_t, std::dynamic_extent>);
19 ShaderLibraryVk(decltype(owningDevice), const std::string_view, const FromSourceConfig& config);
20 ShaderLibraryVk(decltype(owningDevice), const std::filesystem::path& path);
21
22 virtual ~ShaderLibraryVk();
23 private:
24 void ShaderLibraryFromBytes(VkDevice device, VkShaderModule& module, const std::span<const uint8_t, std::dynamic_extent> code);
25 };
26}
Definition ShaderLibrary.hpp:11
Definition ShaderLibrary.hpp:15
Definition VkShaderLibrary.hpp:11