source: GTP/branches/IllumWPdeliver2008dec/IlluminationWP/demos/Standalone/Hierarchical Systems Demo [OpenGL]/RESOURCES/include/MyCgRes/CgProgram.h @ 3255

Revision 3255, 2.6 KB checked in by szirmay, 15 years ago (diff)
Line 
1#pragma once
2
3#include <includes.h>
4
5enum ProgramType
6{
7        PROGRAM_VERTEX,
8        PROGRAM_FRAGMENT
9};
10
11
12class CgProgram
13{
14public:
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
Note: See TracBrowser for help on using the repository browser.