My Project
GLProgramCache.h
1 #pragma once
2 
3 #include <string>
4 #include <unordered_map>
5 
6 #include "GLType.h"
7 
8 namespace ParaEngine
9 {
10  class GLProgram;
11 
22  {
23  public:
33 
35  static GLProgramCache* getInstance();
36 
38  static void destroyInstance();
39 
42 
44  static void purgeSharedShaderCache();
45 
47  void loadDefaultGLPrograms();
48  void loadDefaultShaders() { loadDefaultGLPrograms(); }
49 
52  void reloadDefaultShaders() { reloadDefaultGLPrograms(); }
53 
56  GLProgram * getGLProgram(const std::string &key);
57  GLProgram * getProgram(const std::string &key) { return getGLProgram(key); }
58  GLProgram * programForKey(const std::string &key) { return getGLProgram(key); }
59 
61  void addGLProgram(GLProgram* program, const std::string &key);
62  void addProgram(GLProgram* program, const std::string &key) { addGLProgram(program, key); }
63 
64  private:
65  bool init();
66  void loadDefaultGLProgram(GLProgram *program, int type);
67 
68  // Dictionary* _programs;
69  std::unordered_map<std::string, GLProgram*> _programs;
70  };
71 }
static void destroyInstance()
purges the cache.
Definition: GLProgramCache.cpp:52
Base class for a reference counted asset.
Definition: PERef.h:55
different physics engine has different winding order.
Definition: EventBinding.h:32
~GLProgramCache()
NA NA
Definition: GLProgramCache.cpp:75
void loadDefaultGLPrograms()
loads the default shaders
Definition: GLProgramCache.cpp:88
GLProgram * getGLProgram(const std::string &key)
returns a GL program for a given key
Definition: GLProgramCache.cpp:360
GLProgramCache Singleton that stores manages GLProgram objects (shaders)
Definition: GLProgramCache.h:21
static GLProgramCache * getInstance()
returns the shared instance
Definition: GLProgramCache.cpp:40
void addGLProgram(GLProgram *program, const std::string &key)
adds a GLProgram to the cache for a given name
Definition: GLProgramCache.cpp:368
GLProgramCache()
ctor
Definition: GLProgramCache.cpp:69
void reloadDefaultGLPrograms()
reload the default shaders
Definition: GLProgramCache.cpp:187
static GLProgramCache * sharedShaderCache()
Definition: GLProgramCache.cpp:58
GLProgram Class that implements a glProgram.
Definition: GLProgram.h:43
static void purgeSharedShaderCache()
Definition: GLProgramCache.cpp:64