Hubris Engine Dev
A Project to learn and get into Game Engine developement.
 
Loading...
Searching...
No Matches
vkShader.h
Go to the documentation of this file.
1#pragma once
5
7 class vkShader final : public Shader {
8 private:
9 VkShaderModule shaderModule;
11 public:
12 vkShader(const std::vector<char>& code, ShaderStage stage);
13 ~vkShader() noexcept {
14 Destroy();
15 }
16
17 virtual void Destroy() noexcept {
18 vkDestroyShaderModule(vkBackend::GetDevice(), shaderModule, vkBackend::GetAllocator());
20 }
21
22 VkPipelineShaderStageCreateInfo GetShaderPipelineCreateInfo()noexcept {
23 VkPipelineShaderStageCreateInfo ShaderStageInfo{};
24 ShaderStageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
25 ShaderStageInfo.stage = VkShaderStageToFlags(stage);
26 ShaderStageInfo.module = shaderModule;
27 ShaderStageInfo.pName = "main";
28 return ShaderStageInfo;
29 }
30 };
31}
Shader(const ShaderStage &type) noexcept
Definition Shader.h:43
static const VkAllocationCallbacks * GetAllocator() noexcept
Definition vkBackend.h:515
static VkDevice GetDevice() noexcept
Definition vkBackend.h:252
VkPipelineShaderStageCreateInfo GetShaderPipelineCreateInfo() noexcept
Definition vkShader.h:22
vkShader(const std::vector< char > &code, ShaderStage stage)
Definition vkShader.cpp:6
virtual void Destroy() noexcept
Definition vkShader.h:17
constexpr VkShaderStageFlagBits VkShaderStageToFlags(const ShaderStage &stage) noexcept
Definition Utility.h:7