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
2
#include <
Core/Graphics/Shader.h
>
3
#include <
Core/Graphics/Vulkan/Utility.h
>
4
#include <
Core/Graphics/Vulkan/vkBackend.h
>
5
6
namespace
Hubris::Graphics::Vulkan
{
7
class
vkShader
final :
public
Shader
{
8
private
:
9
VkShaderModule shaderModule;
10
ShaderStage
stage =
ShaderStage::Unknown
;
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
());
19
stage =
ShaderStage::Unknown
;
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.h
Utility.h
Hubris::Graphics::Shader::Shader
Shader(const ShaderStage &type) noexcept
Definition
Shader.h:43
Hubris::Graphics::Vulkan::vkBackend::GetAllocator
static const VkAllocationCallbacks * GetAllocator() noexcept
Definition
vkBackend.h:515
Hubris::Graphics::Vulkan::vkBackend::GetDevice
static VkDevice GetDevice() noexcept
Definition
vkBackend.h:252
Hubris::Graphics::Vulkan::vkShader::GetShaderPipelineCreateInfo
VkPipelineShaderStageCreateInfo GetShaderPipelineCreateInfo() noexcept
Definition
vkShader.h:22
Hubris::Graphics::Vulkan::vkShader::vkShader
vkShader(const std::vector< char > &code, ShaderStage stage)
Definition
vkShader.cpp:6
Hubris::Graphics::Vulkan::vkShader::~vkShader
~vkShader() noexcept
Definition
vkShader.h:13
Hubris::Graphics::Vulkan::vkShader::Destroy
virtual void Destroy() noexcept
Definition
vkShader.h:17
Hubris::Graphics::Vulkan
Definition
Utility.h:6
Hubris::Graphics::Vulkan::VkShaderStageToFlags
constexpr VkShaderStageFlagBits VkShaderStageToFlags(const ShaderStage &stage) noexcept
Definition
Utility.h:7
Hubris::Graphics::ShaderStage
ShaderStage
Definition
Shader.h:8
Hubris::Graphics::ShaderStage::Unknown
@ Unknown
Definition
Shader.h:9
vkBackend.h
include
Core
Graphics
Vulkan
vkShader.h
Generated by
1.13.2