OpenGL Volumizer 2.7 Reference Pages
| static vzTMFragmentProgram* load ( | const char* filename); |
| vzTMFragmentProgram ( | char* fragmentProgram); |
| void setProgram ( | char* fragmentProgram); |
| char* getProgram ( | ); |
| void setMultiTexCallbacks ( | int numCB, vzTMShaderCB* callbacks, void* userData); |
| void getMultiTexCallbacks ( | int& numCB, vzTMShaderCB*& callbacks, void*& userData); |
| virtual ~vzTMFragmentProgram ( | ); |
| vzTMFragmentProgram ( | char* fragmentProgram); |
| virtual ~vzTMFragmentProgram ( | ); |
| void getMultiTexCallbacks ( | int& numCB, vzTMShaderCB*& callbacks, void*& userData); |
| char* getProgram ( | ); |
| static vzTMFragmentProgram* load ( | const char* filename); |
| void setMultiTexCallbacks ( | int numCB, vzTMShaderCB* callbacks, void* userData); |
typedef void (*vzTMShaderCB)(vzTMShaderData *shaderData);
static char FragmentProgram[] = "!!ARBfp1.0\n"
"TEMP volume;\n"
"TEX volume, fragment.texcoord[0], texture[0], 3D;\n"
"TEX result.color, volume, texture[1], 1D;\n"
"END"
// Load the fragment program
vzTMFragmentProgram *fp = new vzTMFragmentProgram(FragmentProgram);
const int texCallbacks = 2;
vzTMShaderCB *multiTexCB = new vzTMShaderCB[texCallbacks];
multiTexCB[0] = tex0;
multiTexCB[1] = tex1;
// Set the multi-texture callbacks as slice callbacks
fp->setMultiTexCallbacks(texCallbacks, multiTexCB, fp);
void tex0(vzTMShaderData *data) {
// enable "volume" texture
data->bindVolumeTextureCB("volume", data, VZ_TM_ENABLE);
// bind "volume" texture
if(!data->bindVolumeTextureCB("volume", data)) {
cerr<<"slice0: Error binding texture 'volume'"<<endl;
}
}
void tex1(vzTMShaderData *data) {
// enable "lookup_table" parameter (1D texture on Onyx4 systems)
data->bindLookupTableCB("lookup_table", data, VZ_TM_ENABLE);
// bind "lookup_table" parameter
if(!data->bindLookupTableCB("lookup_table", data)) {
cerr<<"slice1: Error binding texture 'lookup_table'"<<endl;
}
}
| void setProgram ( | char* fragmentProgram); |