33#ifndef VK_SHADER_PROGRAM_H
34#define VK_SHADER_PROGRAM_H
39#include <vulkan/vulkan_core.h>
64 PROPERTY_R_IW(VkShaderStageFlagBits, stageMask, VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM);
86 PROPERTY_RW( VkDescriptorSetLayout, descriptorSetLayout, VK_NULL_HANDLE);
91 [[nodiscard]]
bool unload() override;
VkFlags VkShaderStageFlags
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
GFXDevice & context() const noexcept
const ShaderProgramDescriptor & descriptor() const noexcept
PROPERTY_R_IW(VkShaderModule, handle, VK_NULL_HANDLE)
PROPERTY_R_IW(VkShaderStageFlagBits, stageMask, VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM)
VkPipelineShaderStageCreateInfo _createInfo
static vkShaderEntry LoadShader(GFXDevice &context, vkShaderProgram *parent, U32 targetGeneration, ShaderProgram::LoadData &data)
Add or refresh a shader from the cache.
ShaderProgram::LoadData _loadData
bool loadInternal(hashMap< U64, PerFileShaderData > &fileData, bool overwrite) override
Returns true if at least one shader linked successfully.
ShaderResult validatePreBind(const bool rebind) override
const vkShaders & shaderStages() const noexcept
VkShaderStageFlags stageMask() const noexcept
~vkShaderProgram() override
eastl::fixed_vector< vkShaderEntry, to_base(ShaderType::COUNT), false > vkShaders
bool unload() override
Make sure this program is ready for deletion.
Handle console commands that start with a forward slash.
eastl::fixed_vector< DynamicBinding, MAX_BINDINGS_PER_DESCRIPTOR_SET, false > DynamicBindings
hashAlg::unordered_map< K, V, HashFun, Predicate > hashMap
constexpr auto to_base(const Type value) -> Type