OSDN Git Service

cache
[psychlops/cpp.git] / psychlops / platform / gl / psychlops_g_cache.h
1 #ifndef HEADER_PSYCHLOPS_GRAPHIC_GENERIC_CACHE\r
2 #define HEADER_PSYCHLOPS_GRAPHIC_GENERIC_CACHE\r
3
4 #include <vector>\r
5 #include <string>
6 \r
7 #include "../../core/graphic/psychlops_g_image.h"\r
8 #include "../../core/graphic/psychlops_g_font.h"\r
9 \r
10 \r
11 namespace Psychlops {\r
12 namespace Utilities {\r
13 \r
14 \r
15         class CacheOnImage\r
16         {\r
17                 public:\r
18                 bool dirty_;\r
19                 double font_size;\r
20                 Image img;\r
21                 CacheOnImage();\r
22                 ~CacheOnImage();\r
23                 void dirty();\r
24                 void uncache();\r
25 \r
26                 void draw(\r
27                         Letters &drawee, const double xx, const double yy,\r
28                         const double r, const double g, const double b, const double a,\r
29                         const int horiz_align, const int vertical_align, const double max_width, Drawable &outer);\r
30         };\r
31 \r
32         class TextCacheManager\r
33         {\r
34                 public:\r
35                 std::map<Letters*, CacheOnImage *> map;\r
36                 bool isCached(Letters *letters);\r
37 \r
38                 void cache(Letters *letters, CacheOnImage *allocation);\r
39                 void uncache(Letters *letters);\r
40                 void uncacheAll();\r
41         };\r
42 \r
43 }
44 }       /*      <- namespace Psycholops         */
45 \r
46 #endif\r
47 \r