OSDN Git Service

first
[psychlops/cpp.git] / psychlops / extension / standard / shader / psychlops_g_shader.h
1 /*
2  *  psychlops_g_shader.h
3  *  Psychlops Standard Library (Universal)
4  *
5  *  Last Modified 2009/12/14 by Kenchi HOSOKAWA
6  *  (C) 2009 Kenchi HOSOKAWA, Kazushi MARUYA and Takao SATO
7  */
8
9 #ifndef HEADER_PSYCHLOPS_GRAPHIC_SHADER
10 #define HEADER_PSYCHLOPS_GRAPHIC_SHADER
11
12 #include <string>
13 #include <map>
14 #include "../../../core/graphic/psychlops_graphic.h"
15
16 namespace Psychlops {
17
18         class ShaderAPI;
19         class Shader
20         {
21         protected:
22                 ShaderAPI *api;
23         public:
24                 typedef std::vector<std::string> Variables;
25                 Shader();
26                 ~Shader();
27                 void cache(const std::string &orig_source, const std::vector<std::string> &vars, Drawable &target);
28                 void cacheField(const std::string &orig_source, const std::vector<std::string> &vars, Drawable &target);
29                 void cacheTex(const std::string &orig_source, const std::vector<std::string> &vars, Drawable &target, int sw = 0);
30                 void drawField(const Rectangle &rect, const double *argv, const int argn);
31                 void drawImage(Image &img, const double *argv, const int argn, Canvas &target);\r
32                 void drawImage(Image &img, const double *argv, const int argn, Image &arg_img, Canvas &target);
33                 void fieldToImage(Image &target, const Rectangle &rect, const double *argv, const int argn, Canvas &media);
34                 void imageToImage(Image &target, Image &img, const double *argv, const int argn, Canvas &media);
35         };
36
37
38 }       /*      <- namespace Psycholops         */
39
40 #endif