VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
visutwin::canvas::ProgramLibrary Class Reference

#include <scene/shader-lib/programLibrary.h>

Public Member Functions

void bindMaterial (const std::shared_ptr< GraphicsDevice > &device, const Material *material, bool transparentPass, bool dynamicBatch=false)
std::shared_ptr< ShadergetForwardShader (const Material *material, bool transparentPass, bool dynamicBatch=false)
std::shared_ptr< ShadergetShadowShader (bool dynamicBatch=false)
bool hasProgram (const std::string &name) const
 ProgramLibrary (const std::shared_ptr< GraphicsDevice > &device, StandardMaterial *standardMaterial)
void registerProgram (const std::string &name, const std::vector< std::string > &chunkOrder)
void setAreaLightsEnabled (bool value)
void setAtmosphereEnabled (bool value)
void setClusteredLightingEnabled (bool value)
void setLocalShadowsEnabled (bool value)
void setOmniShadowsEnabled (bool value)
void setPlanarReflectionDepthPass (bool value)
void setSkyCubemapAvailable (bool value)
void setSsaoEnabled (bool value)

Detailed Description

A class responsible for creation and caching of required shaders. There is a two level cache. The first level generates the shader based on the provided options. The second level processes this generated shader using processing options - in most cases modifies it to support uniform buffers.

Definition at line 25 of file programLibrary.h.

Constructor & Destructor Documentation

◆ ProgramLibrary()

visutwin::canvas::ProgramLibrary::ProgramLibrary ( const std::shared_ptr< GraphicsDevice > & device,
StandardMaterial * standardMaterial )

Definition at line 190 of file programLibrary.cpp.

References registerProgram().

Member Function Documentation

◆ bindMaterial()

void visutwin::canvas::ProgramLibrary::bindMaterial ( const std::shared_ptr< GraphicsDevice > & device,
const Material * material,
bool transparentPass,
bool dynamicBatch = false )

◆ getForwardShader()

std::shared_ptr< Shader > visutwin::canvas::ProgramLibrary::getForwardShader ( const Material * material,
bool transparentPass,
bool dynamicBatch = false )

Definition at line 583 of file programLibrary.cpp.

References hasProgram().

Referenced by bindMaterial().

◆ getShadowShader()

std::shared_ptr< Shader > visutwin::canvas::ProgramLibrary::getShadowShader ( bool dynamicBatch = false)

Definition at line 640 of file programLibrary.cpp.

References hasProgram().

◆ hasProgram()

bool visutwin::canvas::ProgramLibrary::hasProgram ( const std::string & name) const

Definition at line 224 of file programLibrary.cpp.

Referenced by getForwardShader(), and getShadowShader().

◆ registerProgram()

void visutwin::canvas::ProgramLibrary::registerProgram ( const std::string & name,
const std::vector< std::string > & chunkOrder )

Definition at line 215 of file programLibrary.cpp.

Referenced by ProgramLibrary().

◆ setAreaLightsEnabled()

void visutwin::canvas::ProgramLibrary::setAreaLightsEnabled ( bool value)
inline

Definition at line 63 of file programLibrary.h.

◆ setAtmosphereEnabled()

void visutwin::canvas::ProgramLibrary::setAtmosphereEnabled ( bool value)
inline

Definition at line 72 of file programLibrary.h.

◆ setClusteredLightingEnabled()

void visutwin::canvas::ProgramLibrary::setClusteredLightingEnabled ( bool value)
inline

Definition at line 59 of file programLibrary.h.

◆ setLocalShadowsEnabled()

void visutwin::canvas::ProgramLibrary::setLocalShadowsEnabled ( bool value)
inline

Definition at line 51 of file programLibrary.h.

◆ setOmniShadowsEnabled()

void visutwin::canvas::ProgramLibrary::setOmniShadowsEnabled ( bool value)
inline

Definition at line 55 of file programLibrary.h.

◆ setPlanarReflectionDepthPass()

void visutwin::canvas::ProgramLibrary::setPlanarReflectionDepthPass ( bool value)
inline

Definition at line 47 of file programLibrary.h.

◆ setSkyCubemapAvailable()

void visutwin::canvas::ProgramLibrary::setSkyCubemapAvailable ( bool value)
inline

Definition at line 42 of file programLibrary.h.

◆ setSsaoEnabled()

void visutwin::canvas::ProgramLibrary::setSsaoEnabled ( bool value)
inline

Definition at line 68 of file programLibrary.h.


The documentation for this class was generated from the following files: