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__