Wraith  0.1.5
Basic 3D game engine in C++
ShaderManager Class Reference

Manager for shaders. For loading models and accessing them within user defined games object More...

#include <ShaderManager.h>

Collaboration diagram for ShaderManager:
Collaboration graph

Public Types

enum class  DefaultShader { TEXTURE , LIGHTED_TEXTURE , CONSTANT_COLOR , SPRITE }
 Values that represent default shaders. More...
 

Static Public Member Functions

static void SetDefaultPath (const std::string &defaultPath)
 Sets default file path to access shader files. More...
 
static void LoadShaderAndAssignKey (const std::string &fileName, const MapKey &key)
 Loads shader and assign it to a user defined key. More...
 
static ShaderObject * GetDefaultShader (const DefaultShader defaultShader)
 Gets default preloaded shader. More...
 
static ShaderObject * GetShader (const MapKey &key)
 Gets a shader with a user defined key. More...
 

Private Types

typedef std::string MapKey
 
typedef std::map< MapKey, ShaderObject * > ShaderMap
 

Private Member Functions

 ShaderManager (const ShaderManager &)=delete
 
ShaderManageroperator= (const ShaderManager &)=delete
 
 ShaderManager (const ShaderManager &&)=delete
 
ShaderManageroperator= (ShaderManager &&)=delete
 
void loadDefaultShaders ()
 
void privSetDefaultPath (const std::string defaultPath)
 
void privLoadShaderAndAssignKey (const std::string &fileName, const MapKey &key)
 
bool hasKeyBeenAssigned (const MapKey &key) const
 
void printKeyAssignedErrorAndTerminate (const MapKey &key) const
 
bool isFilePathValid (const std::string &fileName) const
 
void printFileNameErrorAndTerminate (const std::string &fileName) const
 
void printShaderLoadedSuccessfully (const std::string &fileName) const
 
ShaderObject * privGetShader (const MapKey &key) const
 
ShaderObject * privGetDefaultShader (const DefaultShader) const
 
ShaderObject * tryToGetShader (const MapKey &key) const
 
const MapKey getDefaultShaderKey (const DefaultShader) const
 
void deleteAllShaders ()
 

Static Private Member Functions

static ShaderManagerGetInstance ()
 
static void Delete ()
 
static void DebugPrint (const std::string &message)
 

Private Attributes

std::string _defaultPath
 
ShaderMap _shaderStorageMap
 

Static Private Attributes

static ShaderManagerpShaderManagerInstance = nullptr
 
static const std::string DEBUG_TITLE_MESSAGE = "ShaderManager_DEBUG: "
 

Friends

class ShaderManagerAttorney
 

Detailed Description

Manager for shaders. For loading models and accessing them within user defined games object


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