#include <vkShaderProgram.h>
|
| vkShader (GFXDevice &context, const std::string_view name, U32 generation) |
|
| ~vkShader () override |
|
bool | load (const ShaderProgram::LoadData &data) |
|
| PROPERTY_R_IW (VkShaderStageFlagBits, stageMask, VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM) |
|
| PROPERTY_R_IW (VkShaderModule, handle, VK_NULL_HANDLE) |
|
| ShaderModule (GFXDevice &context, const std::string_view name, U32 generation) |
|
virtual | ~ShaderModule () override |
|
void | registerParent (ShaderProgram *parent) |
|
void | deregisterParent (ShaderProgram *parent) |
|
| PROPERTY_R (Str< 256 >, name) |
|
| PROPERTY_R (bool, valid, false) |
|
| PROPERTY_R (bool, inUse, true) |
|
| PROPERTY_R (U32, generation, 0u) |
|
| PROPERTY_R (U64, lastUsedFrame, U64_MAX - MAX_FRAME_LIFETIME - 1u) |
|
| GUIDWrapper () noexcept |
|
| GUIDWrapper (const GUIDWrapper &old) noexcept |
|
| GUIDWrapper (GUIDWrapper &&old) noexcept |
|
virtual | ~GUIDWrapper ()=default |
|
FORCE_INLINE I64 | getGUID () const noexcept |
|
GUIDWrapper & | operator= (const GUIDWrapper &old)=delete |
|
GUIDWrapper & | operator= (GUIDWrapper &&other)=delete |
|
virtual | ~GraphicsResource () |
|
GFXDevice & | context () const noexcept |
|
U64 | nameHash () const noexcept |
|
| NonCopyable (const NonCopyable &)=delete |
|
NonCopyable & | operator= (const NonCopyable &)=delete |
|
| NonCopyable (NonCopyable &&)=default |
|
NonCopyable & | operator= (NonCopyable &&)=default |
|
| NonMovable (NonMovable &&)=delete |
|
NonMovable & | operator= (NonMovable &&)=delete |
|
| NonMovable (const NonMovable &)=default |
|
NonMovable & | operator= (const NonMovable &)=default |
|
|
enum class | Type : U8 {
RENDER_TARGET
, SHADER_BUFFER
, BUFFER
, SHADER
,
SHADER_PROGRAM
, TEXTURE
, COUNT
} |
|
using | ShaderMap = hashMap< U64, ShaderModule_uptr > |
|
| GraphicsResource (GFXDevice &context, Type type, I64 GUID, U64 nameHash) |
|
| NonCopyable ()=default |
|
| ~NonCopyable ()=default |
|
| NonMovable ()=default |
|
| ~NonMovable ()=default |
|
static ShaderModule * | GetShaderLocked (const std::string_view name) |
|
Mutex | _parentLock |
|
eastl::fixed_vector< ShaderProgram *, 4, true > | _parents |
|
const I64 | _guid |
|
GFXDevice & | _context |
|
static constexpr U32 | MAX_FRAME_LIFETIME = Config::TARGET_FRAME_RATE * 10 |
|
static std::atomic_bool | s_modulesRemoved |
| Shader cache.
|
|
static ShaderMap | s_shaderNameMap |
|
static SharedMutex | s_shaderNameLock |
|
Definition at line 51 of file vkShaderProgram.h.
◆ vkShader()
Divide::vkShader::vkShader |
( |
GFXDevice & |
context, |
|
|
const std::string_view |
name, |
|
|
U32 |
generation |
|
) |
| |
|
explicit |
◆ ~vkShader()
Divide::vkShader::~vkShader |
( |
| ) |
|
|
override |
◆ load()
◆ LoadShader()
Add or refresh a shader from the cache.
Load a shader by name, source code and stage.
Definition at line 34 of file vkShaderProgram.cpp.
◆ PROPERTY_R_IW() [1/2]
Divide::vkShader::PROPERTY_R_IW |
( |
VkShaderModule |
, |
|
|
handle |
, |
|
|
VK_NULL_HANDLE |
|
|
) |
| |
◆ PROPERTY_R_IW() [2/2]
Divide::vkShader::PROPERTY_R_IW |
( |
VkShaderStageFlagBits |
, |
|
|
stageMask |
, |
|
|
VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM |
|
|
) |
| |
◆ reset()
void Divide::vkShader::reset |
( |
| ) |
|
|
private |
◆ _createInfo
VkPipelineShaderStageCreateInfo Divide::vkShader::_createInfo {} |
|
private |
◆ _loadData
The documentation for this class was generated from the following files:
- G:/Divide-Framework/Source/Platform/Video/RenderBackend/Vulkan/Shaders/Headers/vkShaderProgram.h
- G:/Divide-Framework/Source/Platform/Video/RenderBackend/Vulkan/Shaders/vkShaderProgram.cpp