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