source: trunk/packages/vizservers/nanovis/NvShader.cpp @ 1497

Last change on this file since 1497 was 1482, checked in by vrinside, 15 years ago

delete shaders programs in deleting classes (NvLIC/NvParticleRednerer)

File size: 898 bytes
Line 
1#include <stdio.h>
2#include "global.h"
3#include "NvShader.h"
4
5CGcontext g_context = 0;
6
7void NvInitCG()
8{
9    g_context = cgCreateContext();
10}
11
12NvShader::NvShader()
13
14: _cgVP(0), _cgFP(0)
15{
16}
17
18NvShader::~NvShader()
19{
20    resetPrograms();
21}
22
23void NvShader::loadVertexProgram(const char* fileName, const char* entryPoint)
24{
25    resetPrograms();
26
27    _cgFP = LoadCgSourceProgram(g_context, fileName, CG_PROFILE_VP30, entryPoint);
28}
29
30void NvShader::loadFragmentProgram(const char* fileName, const char* entryPoint)
31{
32    _cgFP = LoadCgSourceProgram(g_context, fileName, CG_PROFILE_FP30, entryPoint);
33}
34
35void NvShader::resetPrograms()
36{
37    if (_cgVP > 0)
38    {
39        cgDestroyProgram(_cgVP);
40    }
41
42    if (_cgFP > 0)
43    {
44        cgDestroyProgram(_cgFP);
45    }
46}
47
48void NvShader::setErrorCallback(NvCgCallbackFunction callback)
49{
50        printf("NvShader callback\n");
51    cgSetErrorCallback(callback);
52}
53
54
Note: See TracBrowser for help on using the repository browser.