]> git.tdb.fi Git - libs/gl.git/blob - source/glsl/modulecache.h
Move a few bits of Renderer into a backend class
[libs/gl.git] / source / glsl / modulecache.h
1 #ifndef MSP_GL_SL_MODULECACHE_H_
2 #define MSP_GL_SL_MODULECACHE_H_
3
4 #include <msp/datafile/collection.h>
5 #include "syntax.h"
6
7 namespace Msp {
8 namespace GL {
9 namespace SL {
10
11 class ModuleCache
12 {
13 private:
14         DataFile::Collection *resources;
15         std::map<std::string, Module *> modules;
16         unsigned next_source;
17
18 public:
19         ModuleCache(DataFile::Collection *);
20         ModuleCache(const ModuleCache &);
21         ModuleCache &operator=(const ModuleCache &);
22         ~ModuleCache();
23
24         const Module &add_module(const std::string &, const std::string &);
25         const Module &add_module(IO::Base &, const std::string &);
26         const Module &get_module(const std::string &);
27 };
28
29 } // namespace SL
30 } // namespace GL
31 } // namespace Msp
32
33 #endif