source: trunk/vizservers/nanovis/NvShader.cpp @ 884

Last change on this file since 884 was 851, checked in by vrinside, 16 years ago

Got particle system and LIC (Line integral convolution) run.

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