#include <shader.h>
Public Types | |
| enum | EShaderType : uint { Vertex = 0x01, Fragment = 0x02 } | 
| using | ShaderTypeFlags = uint | 
Public Member Functions | |
| Shader (Core &core) | |
| ~Shader () | |
| const VertexAttributeDeclarations & | getAttributes () const | 
| VkShaderModule | getVertexModule () const | 
| VkShaderModule | getFragmentModule () const | 
  Public Member Functions inherited from BaseShader | |
| BaseShader (Core &core) | |
| virtual | ~BaseShader () | 
| const SamplerDeclarations & | getSamplerDeclarations () const | 
| const std::vector< BufferObjectDeclaration > & | getUBODeclarations () const | 
| const std::vector< BufferObjectDeclaration > & | getSSBODeclarations () const | 
| const ShaderConstantDeclarations & | getConstantDeclarations () const | 
| const std::string & | getDisplayName () const | 
| VkDescriptorSetLayout | getDescriptorSetLayout () const | 
| void | clear () | 
  Public Member Functions inherited from Resource | |
| Resource () | |
  Public Member Functions inherited from Object | |
| Object () | |
| virtual | ~Object () | 
| virtual bool | init (utility::ErrorState &errorState) | 
| virtual void | onDestroy () | 
| Object (Object &)=delete | |
| Object & | operator= (const Object &)=delete | 
| Object (Object &&)=delete | |
| Object & | operator= (Object &&)=delete | 
Protected Member Functions | |
| 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) | 
| bool | loadDefault (const std::string &displayName, utility::ErrorState &errorState) | 
  Protected Member Functions inherited from BaseShader | |
| bool | initLayout (VkDevice device, nap::utility::ErrorState &errorState) | 
| bool | verifyShaderVariableDeclarations (utility::ErrorState &errorState) | 
Additional Inherited Members | |
  Static Public Member Functions inherited from Object | |
| static bool | isIDProperty (rtti::Instance &object, const rtti::Property &property) | 
  Public Attributes inherited from Object | |
| std::string | mID | 
| Property: 'mID' unique name of the object. Used as an identifier by the system.  More... | |
  Protected Attributes inherited from BaseShader | |
| RenderService * | mRenderService = nullptr | 
| Handle to render engine.  More... | |
| std::string | mDisplayName | 
| Filename of shader used as display name.  More... | |
| BufferObjectDeclarationList | mUBODeclarations | 
| All uniform buffer object declarations.  More... | |
| BufferObjectDeclarationList | mSSBODeclarations | 
| All storage buffer object declarations.  More... | |
| SamplerDeclarations | mSamplerDeclarations | 
| All sampler declarations.  More... | |
| ShaderConstantDeclarations | mConstantDeclarations | 
| All shader constant declarations.  More... | |
| VkDescriptorSetLayout | mDescriptorSetLayout = VK_NULL_HANDLE | 
| Descriptor set layout.  More... | |
Cross-Compiles GLSL vertex and fragment shader code to SPIR-V and creates a Vulkan shader module. All uniforms, samplers and attributes are extracted. Make sure to call init() on initialization of a derived shader class. A nap::Material links to a BaseShader. The shader is compiled on initialization. Use a nap::Material or nap::MaterialInstance to set / override uniforms and samplers.
| using ShaderTypeFlags = uint | 
| enum EShaderType : uint | 
Shader type flag bits
| Enumerator | |
|---|---|
| Vertex | |
| Fragment | |
| ~Shader | ( | ) | 
| const VertexAttributeDeclarations& getAttributes | ( | ) | const | 
| VkShaderModule getFragmentModule | ( | ) | const | 
| VkShaderModule getVertexModule | ( | ) | const | 
      
  | 
  protected | 
Compiles the GLSL shader code, creates the shader module and parses all the uniforms and samplers. Call this in a derived class on initialization.
| displayName | the name of the shader. | 
| searchPaths | the search paths of the shader. | 
| vertShader | the vertex shader GLSL code. | 
| vertSize | total number of characters in vertShader. | 
| fragShader | the fragment shader GLSL code. | 
| fragSize | total number of characters in fragShader. | 
| errorState | contains the error if initialization fails. | 
      
  | 
  protected | 
Loads a NAP default shader from disk. Compiles the GLSL shader code, creates the shader module and parses all the uniforms and samplers. Call this in a derived class on initialization.
| displayName | the name of the NAP default shader. | 
| errorState | contains the error if initialization fails. |