NAP
Public Member Functions | Public Attributes | List of all members
ComputeShaderFromFile Class Reference

#include <shader.h>

Public Member Functions

 ComputeShaderFromFile (Core &core)
 
virtual bool init (utility::ErrorState &error) override
 
- Public Member Functions inherited from ComputeShader
 ComputeShader (Core &core)
 
 ~ComputeShader ()
 
VkShaderModule getComputeModule () const
 
const glm::uvec3 & getWorkGroupSize () const
 
const std::unordered_map< uint, std::string > & getWorkGroupSizeOverrides () const
 
- Public Member Functions inherited from BaseShader
 BaseShader (Core &core)
 
virtual ~BaseShader ()
 
const SamplerDeclarationsgetSamplerDeclarations () const
 
const std::vector< BufferObjectDeclaration > & getUBODeclarations () const
 
const std::vector< BufferObjectDeclaration > & getSSBODeclarations () const
 
const ShaderConstantDeclarationsgetConstantDeclarations () 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 void onDestroy ()
 
 Object (Object &)=delete
 
Objectoperator= (const Object &)=delete
 
 Object (Object &&)=delete
 
Objectoperator= (Object &&)=delete
 

Public Attributes

std::string mComputePath
 Property: 'ComputeShader' path to the vertex shader on disk. More...
 
bool mRestrictModuleIncludes = false
 Property: 'RestrictModuleIncludes' excludes shader include file search paths in module data folders. More...
 
- Public Attributes inherited from ComputeShader
bool mEnableMaxGroupSizeDefault = false
 Property: Overwrite work group size with maximum supported work-group size. More...
 
- Public Attributes inherited from Object
std::string mID
 Property: 'mID' unique name of the object. Used as an identifier by the system. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Object
static bool isIDProperty (rtti::Instance &object, const rtti::Property &property)
 
- Protected Member Functions inherited from ComputeShader
virtual bool load (const std::string &displayName, const std::vector< std::string > &searchPaths, const char *compShader, int compSize, utility::ErrorState &errorState)
 
- Protected Member Functions inherited from BaseShader
bool initLayout (VkDevice device, nap::utility::ErrorState &errorState)
 
bool verifyShaderVariableDeclarations (utility::ErrorState &errorState)
 
- Protected Attributes inherited from BaseShader
RenderServicemRenderService = 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...
 

Description

Loads a GLSL compute shader from disk using the provided compute shader path. The shader cross compiles the loaded GLSL shader code to SPIR-V, creates the shader module and parses all the uniforms and samplers.

Inheritance diagram for ComputeShaderFromFile:
[legend]
Collaboration diagram for ComputeShaderFromFile:
[legend]

Constructor & Destructor Documentation

◆ ComputeShaderFromFile()

Member Function Documentation

◆ init()

virtual bool init ( utility::ErrorState error)
overridevirtual

Cross compiles the loaded GLSL shader code to SPIR-V, creates the shader module and parses all the uniforms and samplers.

Parameters
errorcontains the error if initialization fails.
Returns
if initialization succeeded.

Reimplemented from Object.

Member Data Documentation

◆ mComputePath

std::string mComputePath

Property: 'ComputeShader' path to the vertex shader on disk.

◆ mRestrictModuleIncludes

bool mRestrictModuleIncludes = false

Property: 'RestrictModuleIncludes' excludes shader include file search paths in module data folders.