1 | #pragma once
|
---|
2 |
|
---|
3 | #include <includes.h>
|
---|
4 |
|
---|
5 | enum ProgramType
|
---|
6 | {
|
---|
7 | PROGRAM_VERTEX,
|
---|
8 | PROGRAM_FRAGMENT
|
---|
9 | };
|
---|
10 |
|
---|
11 |
|
---|
12 | class CgProgram
|
---|
13 | {
|
---|
14 | public:
|
---|
15 | CgProgram(void);
|
---|
16 | ~CgProgram(void);
|
---|
17 |
|
---|
18 | void SetProgramFiles(char* vertexfile,char* fragmentfile){m_VertexProgramFilename=vertexfile;
|
---|
19 | m_FragmentProgramFilename=fragmentfile;}
|
---|
20 | void SetProgramEntries(char* vertexentry,char* fragmententry){m_VertexProgramEntry=vertexentry;
|
---|
21 | m_FragmentProgramEntry=fragmententry;}
|
---|
22 |
|
---|
23 | void InitPrograms();
|
---|
24 |
|
---|
25 | void SetVertexParam1f(char* paramname,float param){cgSetParameter1f(cgGetNamedParameter(*m_VertexProgram,paramname),param);}
|
---|
26 | void SetFragmentParam1f(char* paramname,float param){cgSetParameter1f(cgGetNamedParameter(*m_FragmentProgram,paramname),param);}
|
---|
27 | void SetVertexParam2f(char* paramname,float param1,float param2){cgSetParameter2f(cgGetNamedParameter(*m_VertexProgram,paramname),param1,param2);}
|
---|
28 | void SetFragmentParam2f(char* paramname,float param1,float param2){cgSetParameter2f(cgGetNamedParameter(*m_FragmentProgram,paramname),param1,param2);}
|
---|
29 | void SetVertexParam3f(char* paramname,float param1,float param2,float param3){cgSetParameter3f(cgGetNamedParameter(*m_VertexProgram,paramname),param1,param2,param3);}
|
---|
30 | void SetFragmentParam3f(char* paramname,float param1,float param2,float param3){cgSetParameter3f(cgGetNamedParameter(*m_FragmentProgram,paramname),param1,param2,param3);}
|
---|
31 | void SetVertexParam4f(char* paramname,float param1,float param2,float param3,float param4){cgSetParameter4f(cgGetNamedParameter(*m_VertexProgram,paramname),param1,param2,param3,param4);}
|
---|
32 | void SetFragmentParam4f(char* paramname,float param1,float param2,float param3,float param4){cgSetParameter4f(cgGetNamedParameter(*m_FragmentProgram,paramname),param1,param2,param3,param4);}
|
---|
33 |
|
---|
34 |
|
---|
35 | void SetVertexTexParam(char* param,unsigned int TexID)
|
---|
36 | {
|
---|
37 |
|
---|
38 | cgGLSetTextureParameter(cgGetNamedParameter(*m_VertexProgram,param),TexID);
|
---|
39 | }
|
---|
40 |
|
---|
41 | void SetFragmentTexParam(char* param,unsigned int TexID)
|
---|
42 | {
|
---|
43 | cgGLSetTextureParameter(cgGetNamedParameter(*m_FragmentProgram,param),TexID);
|
---|
44 | }
|
---|
45 |
|
---|
46 | void DisableFragmentTexParam(char* param)
|
---|
47 | {
|
---|
48 | cgGLDisableTextureParameter(cgGetNamedParameter(*m_FragmentProgram,param));
|
---|
49 | }
|
---|
50 |
|
---|
51 | void DisableVertexTexParam(char* param)
|
---|
52 | {
|
---|
53 | cgGLDisableTextureParameter(cgGetNamedParameter(*m_VertexProgram,param));
|
---|
54 | }
|
---|
55 |
|
---|
56 | char* m_FragmentProgramFilename;
|
---|
57 | char* m_VertexProgramFilename;
|
---|
58 | char* m_FragmentProgramEntry;
|
---|
59 | char* m_VertexProgramEntry;
|
---|
60 |
|
---|
61 | CGcontext m_Context;
|
---|
62 | CGprogram *m_VertexProgram;
|
---|
63 | CGprogram *m_FragmentProgram;
|
---|
64 | CGprofile m_VertexProfile, m_FragmentProfile;
|
---|
65 |
|
---|
66 | void Enable();
|
---|
67 | void Disable();
|
---|
68 | };
|
---|
69 |
|
---|