00001
00002 #ifndef __shader_cache_hpp__
00003 #define __shader_cache_hpp__
00004
00005 #include <vector>
00006
00007 #include <crbn/basic/basic.h>
00008
00009 #include <crbn/shader/shader.hpp>
00010
00011 typedef struct _shc_entry shc_entry;
00012
00013 class shCache
00014 {
00015 public:
00016 shCache();
00017 ~shCache();
00018
00019 uint32 memory() { return _memory_used; }
00020 void clear();
00021
00022 int32 add( Shader* shader, char* module_name );
00023 Shader* get( uint32 index );
00024 void release( uint32 index );
00025 private:
00026 uint32 _memory_used;
00027 std::vector<shc_entry> _list;
00028 };
00029
00030 #endif // __shader_cache_hpp__