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

Revision 3255, 2.0 KB checked in by szirmay, 15 years ago (diff)
Line 
1#include ".\cgprogram.h"
2
3CgProgram::CgProgram(void)     
4{
5        m_FragmentProgram=NULL;
6        m_VertexProgram=NULL;
7}
8
9CgProgram::~CgProgram(void)
10{
11}
12
13void CgProgram::InitPrograms()
14{
15        m_Context=cgCreateContext();
16        m_VertexProfile=cgGLGetLatestProfile(CG_GL_VERTEX);
17        cgGLSetOptimalOptions(m_VertexProfile);
18        m_FragmentProfile=cgGLGetLatestProfile(CG_GL_FRAGMENT);
19        cgGLSetOptimalOptions(m_FragmentProfile);
20
21        m_VertexProgram=new CGprogram;
22        *m_VertexProgram=cgCreateProgramFromFile(m_Context,CG_SOURCE,m_VertexProgramFilename,m_VertexProfile,m_VertexProgramEntry,0);
23        cgGLLoadProgram(*m_VertexProgram);
24        fprintf(stderr, "Building CgProgram: %s %s \n", m_VertexProgramFilename,m_VertexProgramEntry);
25        if(*m_VertexProgram==0)
26        {
27                fprintf(stderr, "!!!!CG_ERROR: Unable to build program: %s %s :\n", m_VertexProgramFilename,m_VertexProgramEntry);
28                fprintf(stderr, "       %s \n", cgGetLastListing(m_Context));
29        }
30
31        m_FragmentProgram=new CGprogram;
32       
33        const char** arg;
34        arg=new const char*[3];
35        arg[0]="-ifcvt";
36        arg[1]="all";
37        arg[2]=NULL;
38       
39        *m_FragmentProgram=cgCreateProgramFromFile(m_Context,CG_SOURCE,m_FragmentProgramFilename,m_FragmentProfile,m_FragmentProgramEntry,arg);
40        cgGLLoadProgram(*m_FragmentProgram);
41        fprintf(stderr, "Building CgProgram: %s %s \n", m_FragmentProgramFilename,m_FragmentProgramEntry);
42        if(*m_FragmentProgram==0)
43        {
44                fprintf(stderr, "!!!!CG_ERROR: Unable to build program: %s %s :\n", m_FragmentProgramFilename,m_FragmentProgramEntry);
45                fprintf(stderr, "       %s \n", cgGetLastListing(m_Context));
46        }
47        cgGLSetManageTextureParameters(m_Context,true);
48}
49
50void CgProgram::Enable()
51{
52        if(m_FragmentProgram)
53        {
54                cgGLEnableProfile(m_FragmentProfile);
55                cgGLBindProgram(*m_FragmentProgram);
56        }
57        if(m_VertexProgram)
58        {
59                cgGLEnableProfile(m_VertexProfile);
60                cgGLBindProgram(*m_VertexProgram);
61        }
62}
63
64void CgProgram::Disable()
65{
66        if(m_FragmentProgram)
67        {
68                cgGLDisableProfile(m_FragmentProfile);
69        }
70        if(m_VertexProgram)
71        {
72                cgGLDisableProfile(m_VertexProfile);
73        }
74}
75
Note: See TracBrowser for help on using the repository browser.