Go to the documentation of this file.00001 #pragma once
00002
00003 #define NOMINMAX
00004 #include <windows.h>
00005 #include "glew.h"
00006 #include "constants.h"
00007 #include <iostream>
00008 #include <string>
00009 #include <map>
00010 #include <cg\cggl.h>
00011
00012 using namespace std;
00013
00014 class GShader
00015 {
00016 protected:
00017 bool initialized;
00018 bool hasnextpass;
00019
00020 map<string, void *> parameters;
00021 public:
00022 string name;
00023 string path;
00024 BYTE type;
00025
00026 GShader(string name, string path);
00027 virtual ~GShader();
00028
00029 virtual int Compile(int FLAGS) = 0;
00030 virtual int Load(int FLAGS) = 0;
00031 virtual int CompileAndLoad(int FLAGS) = 0;
00032
00033 virtual bool GetNextPass() = 0;
00034 virtual void EnablePass() = 0;
00035 virtual void DisablePass() = 0;
00036
00037 virtual int SetParameter1f(string param, float v1) = 0;
00038 virtual int SetParameter2f(string param, float v1, float v2) = 0;
00039 virtual int SetParameter3f(string param, float v1, float v2, float v3) = 0;
00040 virtual int SetParameter4f(string param, float v1, float v2, float v3, float v4) = 0;
00041
00042 virtual int SetParameter1fv(string param, float *v) = 0;
00043 virtual int SetParameter2fv(string param, float *v) = 0;
00044 virtual int SetParameter3fv(string param, float *v) = 0;
00045 virtual int SetParameter4fv(string param, float *v) = 0;
00046
00047 virtual int SetParameterMatrixArray(string param, long offset, long nelements, float *data) = 0;
00048 virtual int SetParameterMatrix(string param, float *mat) = 0;
00049 virtual int SetStateParameterMatrix(string param, CGGLenum matrix, CGGLenum transform) = 0;
00050
00051 virtual int EnableTexture(string param) = 0;
00052 virtual int SetParameterTexture(string param, GLuint texobj) = 0;
00053 virtual int DisableTexture(string param) = 0;
00054 };