8 #include "rendertarget.h"
9 #include "vertexattributedeclaration.h"
10 #include "samplerdeclaration.h"
11 #include "shadervariabledeclarations.h"
12 #include "shaderconstant.h"
13 #include "shaderconstantdeclaration.h"
17 #include <utility/dllexport.h>
18 #include <nap/resource.h>
19 #include <rtti/factory.h>
45 const std::vector<BufferObjectDeclaration>&
getUBODeclarations()
const {
return mUBODeclarations; }
79 VkDescriptorSetLayout mDescriptorSetLayout = VK_NULL_HANDLE;
150 bool load(
const std::string& displayName,
const std::vector<std::string>& searchPaths,
const char* vertShader,
int vertSize,
const char* fragShader,
int fragSize,
utility::ErrorState& errorState);
164 VkShaderModule mVertexModule = VK_NULL_HANDLE;
165 VkShaderModule mFragmentModule = VK_NULL_HANDLE;
200 bool mEnableMaxGroupSizeDefault =
false;
213 virtual bool load(
const std::string& displayName,
const std::vector<std::string>& searchPaths,
const char* compShader,
int compSize,
utility::ErrorState& errorState);
216 glm::uvec3 mWorkGroupSize;
217 std::unordered_map<uint, std::string> mWorkGroupSizeOverrides;
218 VkShaderModule mComputeModule = VK_NULL_HANDLE;
242 bool mRestrictModuleIncludes =
false;
265 bool mRestrictModuleIncludes =
false;
std::string mFragPath
Property: 'mFragShader' path to the fragment shader on disk.
Definition: shader.h:241
unsigned int uint
Definition: numeric.h:23
SamplerDeclarations mSamplerDeclarations
All sampler declarations.
Definition: shader.h:77
BufferObjectDeclarationList mUBODeclarations
All uniform buffer object declarations.
Definition: shader.h:75
const ShaderConstantDeclarations & getConstantDeclarations() const
Definition: shader.h:55
std::string mDisplayName
Filename of shader used as display name.
Definition: shader.h:74
std::unordered_map< std::string, std::unique_ptr< VertexAttributeDeclaration > > VertexAttributeDeclarations
Definition: vertexattributedeclaration.h:31
const std::unordered_map< uint, std::string > & getWorkGroupSizeOverrides() const
Definition: shader.h:198
std::string mVertPath
Property: 'mVertShader' path to the vertex shader on disk.
Definition: shader.h:240
Definition: errorstate.h:19
const glm::uvec3 & getWorkGroupSize() const
Definition: shader.h:191
const SamplerDeclarations & getSamplerDeclarations() const
Definition: shader.h:40
BufferObjectDeclarationList mSSBODeclarations
All storage buffer object declarations.
Definition: shader.h:76
std::vector< ShaderConstantDeclaration > ShaderConstantDeclarations
Definition: shaderconstantdeclaration.h:43
Definition: renderservice.h:275
const std::string & getDisplayName() const
Definition: shader.h:60
VkShaderModule getVertexModule() const
Definition: shader.h:130
const VertexAttributeDeclarations & getAttributes() const
Definition: shader.h:125
const std::vector< BufferObjectDeclaration > & getUBODeclarations() const
Definition: shader.h:45
uint ShaderTypeFlags
Definition: shader.h:117
std::vector< nap::BufferObjectDeclaration > BufferObjectDeclarationList
Definition: shadervariabledeclarations.h:191
std::string mComputePath
Property: 'ComputeShader' path to the vertex shader on disk.
Definition: shader.h:264
const std::vector< BufferObjectDeclaration > & getSSBODeclarations() const
Definition: shader.h:50
Definition: templateapp.h:17
std::vector< SamplerDeclaration > SamplerDeclarations
Definition: samplerdeclaration.h:46
VkDescriptorSetLayout getDescriptorSetLayout() const
Definition: shader.h:65
Definition: resource.h:19
ShaderConstantDeclarations mConstantDeclarations
All shader constant declarations.
Definition: shader.h:78
VkShaderModule getFragmentModule() const
Definition: shader.h:135
EShaderType
Definition: shader.h:112
VkShaderModule getComputeModule() const
Definition: shader.h:186