source: trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.cpp @ 2956

Last change on this file since 2956 was 2956, checked in by ldelgass, 12 years ago

First batch of converting shaders to use new parameter support in NvShader?.

  • Property svn:eol-style set to native
File size: 1.1 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2#include "NvParticleAdvectionShader.h"
3
4NvParticleAdvectionShader::NvParticleAdvectionShader() :
5    _velocityVolumeID(0),
6    _scale(1.0f, 1.0f, 1.0f),
7    _max(1.0f),
8    _timeStep(0.0005f),
9    _mode(1)
10{
11    init();
12}
13
14NvParticleAdvectionShader::~NvParticleAdvectionShader()
15{
16}
17
18void NvParticleAdvectionShader::init()
19{
20    loadFragmentProgram("update_pos.cg", "main");
21}
22
23void
24NvParticleAdvectionShader::bind(unsigned int texID, unsigned int initPosTexID)
25{
26    setFPTextureParameter("pos_tex", texID);
27    setFPTextureParameter("init_pos_tex", initPosTexID);
28    setFPTextureParameter("vel_tex", _velocityVolumeID);
29
30    setFPParameter1f("timestep", _timeStep);
31    setFPParameter1f("max", _max);
32    setFPParameter1f("mode", _mode);
33    setFPParameter3f("scale", _scale.x, _scale.y, _scale.z);
34
35    NvShader::bind();
36}
37
38void
39NvParticleAdvectionShader::unbind()
40{
41     disableFPTextureParameter("pos_tex");
42     disableFPTextureParameter("init_pos_tex");
43     disableFPTextureParameter("vel_tex");
44
45     NvShader::unbind();
46}
Note: See TracBrowser for help on using the repository browser.