Changeset 2870
- Timestamp:
- Mar 19, 2012 9:04:34 PM (12 years ago)
- Location:
- trunk/packages/vizservers/nanovis
- Files:
-
- 1 deleted
- 38 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/Color.cpp
r2844 r2870 18 18 19 19 #include "Color.h" 20 #include "define.h"21 20 22 21 Color::Color() : -
trunk/packages/vizservers/nanovis/ConvexPolygon.cpp
r2823 r2870 174 174 if (vertices.size() >= 3) { 175 175 for (unsigned int i = 0; i < vertices.size(); i++) { 176 if (use_texture) {176 if (use_texture) { 177 177 glTexCoord4fv((float *)&(texcoords[i])); 178 178 //glTexCoord4fv((float *)&(vertices[i])); -
trunk/packages/vizservers/nanovis/GradientFilter.cpp
r2844 r2870 14 14 #endif 15 15 16 #define GRADIENTS_EXT ".grd"17 16 static int g_numOfSlices[3] = { 256, 256, 256 }; 18 17 static void *g_volData = 0; … … 28 27 #ifdef notused 29 28 static char * 30 getFloatGradientsFilename( void)29 getFloatGradientsFilename() 31 30 { 32 31 char floatExt[] = "_float"; 33 32 char *filename; 34 35 /* 36 if (! (filename = (char *)malloc(strlen(g.basename) + 37 strlen(floatExt) + 38 strlen(GRADIENTS_EXT) + 1))) { 39 */ 33 char extension[] = ".grd"; 34 40 35 if (! (filename = (char *)malloc(strlen("base") + 41 36 strlen(floatExt) + 42 strlen( GRADIENTS_EXT) + 1))) {37 strlen(extension) + 1))) { 43 38 ERROR("not enough memory for filename\n"); 44 39 exit(1); 45 40 } 46 41 47 //strcpy(filename, g.basename);48 42 strcpy(filename, "base"); 49 50 43 strcat(filename, floatExt); 51 strcat(filename, GRADIENTS_EXT);44 strcat(filename, extension); 52 45 53 46 return filename; … … 72 65 fclose(fp); 73 66 } 67 68 static void 69 saveGradients(void *gradients, int *sizes, DataType dataType) 70 { 71 char *filename; 72 int size; 73 FILE *fp; 74 75 filename = getGradientsFilename(); 76 if (! (fp = fopen(filename, "wb"))) { 77 perror("cannot open gradients file for writing"); 78 exit(1); 79 } 80 81 size = 3 * sizes[0] * sizes[1] * sizes[2] 82 * getDataTypeSize(dataType); 83 84 if (fwrite(gradients, size, 1, fp) != 1) { 85 ERROR("writing gradients failed\n"); 86 exit(1); 87 } 88 89 fclose(fp); 90 } 74 91 #endif 75 92 … … 104 121 { 105 122 return ((float*)g_volData)[z * g_numOfSlices[0] * g_numOfSlices[1] + 106 107 123 y * g_numOfSlices[0] + 124 x]; 108 125 } 109 126 … … 127 144 return 0.0; 128 145 } 129 130 146 131 147 void computeGradients(float *gradients, void* volData, int *sizes, DataType dataType) … … 425 441 } 426 442 427 428 443 void quantize8(float *grad, unsigned char *data) 429 444 { … … 489 504 int *sizes, DataType dataType) 490 505 { 491 492 506 int idx, idy, idz, di; 493 507 … … 518 532 } 519 533 } 520 /*521 522 void saveGradients(void *gradients, int *sizes, DataType dataType)523 {524 char *filename;525 int size;526 FILE *fp;527 528 filename = getGradientsFilename();529 if (! (fp = fopen(filename, "wb"))) {530 perror("cannot open gradients file for writing");531 exit(1);532 }533 534 size = 3 * sizes[0] * sizes[1] * sizes[2]535 * getDataTypeSize(dataType);536 537 if (fwrite(gradients, size, 1, fp) != 1) {538 ERROR("writing gradients failed\n");539 exit(1);540 }541 542 fclose(fp);543 }544 */ -
trunk/packages/vizservers/nanovis/HeightMap.cpp
r2844 r2870 9 9 10 10 #include <GL/glew.h> 11 #include < GL/gl.h>11 #include <Cg/cgGL.h> 12 12 13 13 #include "Grid.h" -
trunk/packages/vizservers/nanovis/HeightMap.h
r2831 r2870 3 3 #define HEIGHTMAP_H 4 4 5 #include <Cg/cgGL.h>6 5 #include <Cg/cg.h> 7 6 -
trunk/packages/vizservers/nanovis/Makefile.in
r2863 r2870 23 23 RM = rm -f 24 24 25 AUXSRC = config.h define.h global.h25 AUXSRC = config.h define.h 26 26 27 27 CG_INC_SPEC = @CG_INC_SPEC@ … … 140 140 RenderVertexArray.o \ 141 141 RpAVTranslate.o \ 142 ScreenSnapper.o \143 142 Switch.o \ 144 143 Texture1D.o \ … … 162 161 ParticleSystem.o \ 163 162 ParticleSystemFactory.o \ 163 ScreenSnapper.o \ 164 164 Sphere.o 165 165 endif … … 175 175 resources = \ 176 176 $(srcdir)/resources/Font.bmp \ 177 $(srcdir)/resources/arrows _flip2.png\177 $(srcdir)/resources/arrows.bmp \ 178 178 $(srcdir)/resources/arrows_red_bg.bmp \ 179 $(srcdir)/resources/arrows.bmp \180 179 $(srcdir)/resources/particle2.bmp \ 181 180 $(srcdir)/resources/verdana.fnt \ … … 185 184 $(srcdir)/shaders/common.cg \ 186 185 $(srcdir)/shaders/copy_texcoord.cg \ 186 $(srcdir)/shaders/distance.cg \ 187 $(srcdir)/shaders/distancesort.cg \ 187 188 $(srcdir)/shaders/heightcolor.cg \ 189 $(srcdir)/shaders/mergesort.cg \ 190 $(srcdir)/shaders/moveparticles.cg \ 188 191 $(srcdir)/shaders/one_plane.cg \ 189 192 $(srcdir)/shaders/one_volume.cg \ 190 193 $(srcdir)/shaders/particle_common.cg \ 194 $(srcdir)/shaders/particlefp.cg \ 195 $(srcdir)/shaders/particlevp.cg \ 196 $(srcdir)/shaders/passthrough.cg \ 191 197 $(srcdir)/shaders/passthru.cg \ 192 198 $(srcdir)/shaders/pointsvp.cg \ 193 199 $(srcdir)/shaders/queryvelocity.cg \ 200 $(srcdir)/shaders/renderparticle.cg \ 194 201 $(srcdir)/shaders/render_vel.cg \ 195 202 $(srcdir)/shaders/update_pos.cg \ 196 203 $(srcdir)/shaders/update_pos_vel.cg \ 197 204 $(srcdir)/shaders/update_vel.cg \ 205 $(srcdir)/shaders/velocity.cg \ 206 $(srcdir)/shaders/velocityslicefp.cg \ 207 $(srcdir)/shaders/velocityslicevp.cg \ 198 208 $(srcdir)/shaders/vertex_std.cg \ 199 209 $(srcdir)/shaders/volqd_volume.cg \ 200 $(srcdir)/shaders/velocityslicevp.cg \ 201 $(srcdir)/shaders/velocityslicefp.cg \ 202 $(srcdir)/shaders/zincblende_volume.cg \ 203 $(srcdir)/shaders/distance.cg \ 204 $(srcdir)/shaders/distancesort.cg \ 205 $(srcdir)/shaders/mergesort.cg \ 206 $(srcdir)/shaders/moveparticles.cg \ 207 $(srcdir)/shaders/particlefp.cg \ 208 $(srcdir)/shaders/particlevp.cg \ 209 $(srcdir)/shaders/passthrough.cg \ 210 $(srcdir)/shaders/renderparticle.cg \ 211 $(srcdir)/shaders/velocity.cg 210 $(srcdir)/shaders/zincblende_volume.cg 211 212 212 213 213 .PHONY: all install install-resources install-shaders install-nanovis clean distclean newmat11 R2 imgloaders vrmath vrutil transfer-function … … 335 335 RenderVertexArray.o: RenderVertexArray.cpp RenderVertexArray.h 336 336 RpAVTranslate.o: RpAVTranslate.cpp RpAVTranslate.h nvconf.h 337 ScreenSnapper.o: ScreenSnapper.cpp ScreenSnapper.h define.h337 ScreenSnapper.o: ScreenSnapper.cpp ScreenSnapper.h 338 338 Sphere.o: Sphere.cpp Sphere.h 339 339 Switch.o: Switch.cpp Switch.h … … 349 349 VolumeRenderer.o: VolumeRenderer.cpp VolumeRenderer.h 350 350 ZincBlendeVolume.o: ZincBlendeVolume.cpp ZincBlendeVolume.h $(AUXSRC) 351 dxReader.o: dxReader.cpp dxReaderCommon.h nanovis.h Unirect.h ZincBlendeVolume.h NvZincBlendeReconstructor.h351 dxReader.o: dxReader.cpp dxReaderCommon.h config.h nanovis.h Unirect.h ZincBlendeVolume.h NvZincBlendeReconstructor.h 352 352 dxReaderCommon.o: dxReaderCommon.cpp dxReaderCommon.h GradientFilter.h Vector3.h 353 353 nanovis.o: nanovis.cpp nanovis.h $(AUXSRC) FlowCmd.h Grid.h HeightMap.h NvCamera.h NvColorTableRenderer.h NvEventLog.h NvFlowVisRenderer.h NvLIC.h NvZincBlendeReconstructor.h PerfQuery.h PlaneRenderer.h PointSetRenderer.h PointSet.h RenderContext.h Switch.h Trace.h Unirect.h VelocityArrowsSlice.h VolumeInterpolator.h VolumeRenderer.h ZincBlendeVolume.h -
trunk/packages/vizservers/nanovis/NvColorTableShader.cpp
r2859 r2870 2 2 #include <R2/R2FilePath.h> 3 3 4 #include <GL/glew.h> 5 #include <Cg/cgGL.h> 6 4 7 #include "NvColorTableShader.h" 5 8 #include "Trace.h" 6 #include "global.h"7 9 8 10 NvColorTableShader::NvColorTableShader() … … 17 19 void NvColorTableShader::init() 18 20 { 19 _cgFP = LoadCgSourceProgram(g_context, "one_plane.cg", CG_PROFILE_FP30, 20 "main"); 21 loadFragmentProgram("one_plane.cg", "main"); 21 22 _dataParam = cgGetNamedParameter(_cgFP, "data"); 22 23 _tfParam = cgGetNamedParameter(_cgFP, "tf"); -
trunk/packages/vizservers/nanovis/NvColorTableShader.h
r2859 r2870 5 5 #include <Cg/cg.h> 6 6 7 #include "NvShader.h" 7 8 #include "Texture2D.h" 8 9 #include "TransferFunction.h" 9 #include "NvShader.h"10 10 11 11 class NvColorTableShader : public NvShader -
trunk/packages/vizservers/nanovis/NvFlowVisRenderer.h
r2836 r2870 10 10 #include <Cg/cgGL.h> 11 11 12 #include "define.h"13 12 #include "config.h" 14 #include "global.h"15 13 16 14 #include "Renderable.h" -
trunk/packages/vizservers/nanovis/NvLIC.cpp
r2847 r2870 21 21 22 22 #include "NvLIC.h" 23 #include "NvShader.h" 24 #include "define.h" 23 25 #include "Trace.h" 24 #include "global.h"25 26 26 27 #define NPN 256 //resolution of background pattern … … 43 44 dmax(SCALE/NPIX), 44 45 max(1.0f), 45 _ g_context(_context),46 _cgContext(_context), 46 47 _vectorFieldId(0), 47 48 _activate(false) … … 113 114 114 115 _render_vel_fprog = 115 LoadCgSourceProgram(_ g_context, "render_vel.cg",116 LoadCgSourceProgram(_cgContext, "render_vel.cg", 116 117 CG_PROFILE_FP30, "main"); 117 118 -
trunk/packages/vizservers/nanovis/NvLIC.h
r2847 r2870 20 20 #include <Cg/cgGL.h> 21 21 22 #include "define.h"23 22 #include "config.h" 24 #include "global.h"25 23 #include "nanovis.h" 26 24 … … 119 117 120 118 //CG shader parameters 121 CGcontext _ g_context;119 CGcontext _cgContext; 122 120 CGparameter _vel_tex_param; 123 121 CGparameter _vel_tex_param_render_vel; -
trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.cpp
r2837 r2870 2 2 #include <R2/R2FilePath.h> 3 3 4 #include <GL/glew.h> 5 #include <Cg/cgGL.h> 6 4 7 #include "NvParticleAdvectionShader.h" 5 8 #include "Trace.h" 6 #include "global.h"7 9 8 10 NvParticleAdvectionShader::NvParticleAdvectionShader() : … … 22 24 void NvParticleAdvectionShader::init() 23 25 { 24 _cgFP = LoadCgSourceProgram(g_context, "update_pos.cg", CG_PROFILE_FP30, 25 "main"); 26 loadFragmentProgram("update_pos.cg", "main"); 26 27 _posTimestepParam = cgGetNamedParameter(_cgFP, "timestep"); 27 28 _maxParam = cgGetNamedParameter(_cgFP, "max"); -
trunk/packages/vizservers/nanovis/NvParticleRenderer.cpp
r2863 r2870 24 24 25 25 #include "NvParticleRenderer.h" 26 #include "define.h" 26 27 #include "Trace.h" 27 28 -
trunk/packages/vizservers/nanovis/NvParticleRenderer.h
r2863 r2870 22 22 #include <Cg/cgGL.h> 23 23 24 #include "define.h"25 24 #include "config.h" 26 #include "global.h"27 25 28 26 #include "Renderable.h" -
trunk/packages/vizservers/nanovis/NvRegularVolumeShader.cpp
r2859 r2870 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 2 3 #include "global.h" 3 #include <GL/glew.h> 4 #include <Cg/cgGL.h> 5 4 6 #include "NvRegularVolumeShader.h" 5 7 … … 15 17 void NvRegularVolumeShader::init() 16 18 { 17 _cgFP = LoadCgSourceProgram(g_context, "one_volume.cg", CG_PROFILE_FP30, 18 "main"); 19 loadFragmentProgram("one_volume.cg", "main"); 19 20 _mvi_one_volume_param = cgGetNamedParameter(_cgFP, "modelViewInv"); 20 21 _mv_one_volume_param = cgGetNamedParameter(_cgFP, "modelView"); -
trunk/packages/vizservers/nanovis/NvShader.cpp
r2833 r2870 2 2 #include <stdio.h> 3 3 4 #include "global.h" 4 #include <GL/glew.h> 5 #include <Cg/cg.h> 6 #include <Cg/cgGL.h> 7 8 #include <R2/R2FilePath.h> 9 5 10 #include "NvShader.h" 11 #include "Trace.h" 6 12 7 CGcontext g_context = 0;13 CGcontext NvShader::_cgContext = NULL; 8 14 9 void Nv InitCG()15 void NvShader::initCg() 10 16 { 11 g_context = cgCreateContext(); 17 _cgContext = cgCreateContext(); 18 } 19 20 void NvShader::exitCg() 21 { 22 setErrorCallback(NULL); 23 printErrorInfo(); 24 if (_cgContext != NULL) { 25 cgDestroyContext(_cgContext); 26 _cgContext = NULL; 27 } 28 } 29 30 bool NvShader::printErrorInfo() 31 { 32 CGerror lastError = cgGetError(); 33 34 if (lastError) { 35 TRACE("Cg Error: %s\n", cgGetErrorString(lastError)); 36 if (getCgContext()) 37 TRACE("%s\n", cgGetLastListing(getCgContext())); 38 return false; 39 } 40 return true; 41 } 42 43 CGprogram 44 LoadCgSourceProgram(CGcontext context, const char *fileName, CGprofile profile, 45 const char *entryPoint) 46 { 47 const char *path = R2FilePath::getInstance()->getPath(fileName); 48 if (path == NULL) { 49 ERROR("can't find program \"%s\"\n", fileName); 50 } 51 TRACE("cg program compiling: %s\n", path); 52 CGprogram program; 53 program = cgCreateProgramFromFile(context, CG_SOURCE, path, profile, 54 entryPoint, NULL); 55 cgGLLoadProgram(program); 56 CGerror LastError = cgGetError(); 57 if (LastError) { 58 ERROR("Error message: %s\n", cgGetLastListing(context)); 59 } 60 TRACE("successfully compiled program: %s\n", path); 61 delete [] path; 62 return program; 12 63 } 13 64 14 65 NvShader::NvShader(): 15 _cgVP( 0),16 _cgFP( 0)66 _cgVP(NULL), 67 _cgFP(NULL) 17 68 { 18 69 } … … 27 78 resetPrograms(); 28 79 29 _cgVP = LoadCgSourceProgram( g_context, fileName, CG_PROFILE_VP30, entryPoint);80 _cgVP = LoadCgSourceProgram(_cgContext, fileName, CG_PROFILE_VP40, entryPoint); 30 81 } 31 82 32 83 void NvShader::loadFragmentProgram(const char *fileName, const char *entryPoint) 33 84 { 34 _cgFP = LoadCgSourceProgram( g_context, fileName, CG_PROFILE_FP30, entryPoint);85 _cgFP = LoadCgSourceProgram(_cgContext, fileName, CG_PROFILE_FP40, entryPoint); 35 86 } 36 87 37 88 void NvShader::resetPrograms() 38 89 { 39 if (_cgVP > 0) {90 if (_cgVP != NULL) { 40 91 cgDestroyProgram(_cgVP); 41 92 } 42 93 43 if (_cgFP > 0) {94 if (_cgFP != NULL) { 44 95 cgDestroyProgram(_cgFP); 45 96 } … … 48 99 void NvShader::setErrorCallback(NvCgCallbackFunction callback) 49 100 { 50 TRACE("NvShader callback\n");101 TRACE("NvShader error callback: %p\n", callback); 51 102 cgSetErrorCallback(callback); 52 103 } -
trunk/packages/vizservers/nanovis/NvShader.h
r2837 r2870 4 4 5 5 #include <Cg/cg.h> 6 #include <Cg/cgGL.h>7 6 8 typedef void NvCgCallbackFunction(void); 9 10 extern CGcontext g_context; 7 extern CGprogram LoadCgSourceProgram(CGcontext context, const char *filename, 8 CGprofile profile, const char *entryPoint); 11 9 12 10 class NvShader 13 11 { 14 12 public: 13 typedef void NvCgCallbackFunction(void); 14 15 15 NvShader(); 16 16 … … 57 57 } 58 58 59 static void initCg(); 60 61 static void exitCg(); 62 63 static bool printErrorInfo(); 64 59 65 static void setErrorCallback(NvCgCallbackFunction callback); 60 66 67 static CGcontext getCgContext() 68 { 69 return _cgContext; 70 } 71 61 72 protected: 73 void resetPrograms(); 74 62 75 CGprogram _cgVP; 63 76 CGprogram _cgFP; 64 77 65 void resetPrograms();78 static CGcontext _cgContext; 66 79 }; 67 80 -
trunk/packages/vizservers/nanovis/NvStdVertexShader.cpp
r2859 r2870 2 2 #include <stdio.h> 3 3 4 #include "global.h" 4 #include <GL/glew.h> 5 #include <Cg/cgGL.h> 6 5 7 #include "NvStdVertexShader.h" 6 8 … … 16 18 void NvStdVertexShader::init() 17 19 { 18 _cgVP = LoadCgSourceProgram(g_context, "vertex_std.cg", CG_PROFILE_VP30, 19 "main"); 20 loadVertexProgram("vertex_std.cg", "main"); 20 21 _mvp_vert_std_param = cgGetNamedParameter(_cgVP, "modelViewProjMatrix"); 21 22 _mvi_vert_std_param = cgGetNamedParameter(_cgVP, "modelViewInv"); -
trunk/packages/vizservers/nanovis/NvZincBlendeVolumeShader.cpp
r2859 r2870 3 3 #include <string.h> 4 4 5 #include "global.h" 5 #include <GL/glew.h> 6 #include <Cg/cgGL.h> 7 6 8 #include "NvZincBlendeVolumeShader.h" 7 9 … … 17 19 void NvZincBlendeVolumeShader::init() 18 20 { 19 _cgFP = LoadCgSourceProgram(g_context, "zincblende_volume.cg", 20 CG_PROFILE_FP30, "main"); 21 loadFragmentProgram("zincblende_volume.cg", "main"); 21 22 _tfParam = cgGetNamedParameter(_cgFP, "tf"); 22 23 _volumeAParam = cgGetNamedParameter(_cgFP, "volumeA"); -
trunk/packages/vizservers/nanovis/ParticleSystem.cpp
r2862 r2870 25 25 #include "Texture2D.h" 26 26 #include "Texture3D.h" 27 #include "NvShader.h" 27 28 #include "Trace.h" 28 29 … … 422 423 } 423 424 424 void ParticleSystem::callbackForCgError()425 {426 CGerror lastError = cgGetError();427 if (lastError) {428 const char *listing = cgGetLastListing(_context);429 ERROR("\n---------------------------------------------------\n");430 ERROR("%s\n\n", cgGetErrorString(lastError));431 ERROR("%s\n", listing);432 ERROR("-----------------------------------------------------\n");433 ERROR("Cg error, exiting...\n");434 435 cgDestroyContext(_context);436 getchar();437 exit(-1);438 }439 }440 441 425 void ParticleSystem::initShaders() 442 426 { 443 427 // TBD... 444 _context = cgCreateContext(); 445 cgSetErrorCallback(callbackForCgError); 428 _context = NvShader::getCgContext(); 446 429 447 430 std::string path = vrFilePath::getInstance()->getPath("distance.cg"); -
trunk/packages/vizservers/nanovis/PerfQuery.h
r2822 r2870 24 24 25 25 #include "Trace.h" 26 #include "define.h"27 26 28 27 //check if occlusion query is supported -
trunk/packages/vizservers/nanovis/PlaneRenderer.cpp
r2863 r2870 15 15 */ 16 16 17 #include "global.h"18 17 #include "PlaneRenderer.h" 19 18 #include "Trace.h" -
trunk/packages/vizservers/nanovis/PlaneRenderer.h
r2863 r2870 27 27 #include <Cg/cgGL.h> 28 28 29 #include "global.h"30 29 #include "NvColorTableShader.h" 31 30 #include "TransferFunction.h" -
trunk/packages/vizservers/nanovis/PointSetRenderer.cpp
r2857 r2870 40 40 4, image->getImageBuffer()); 41 41 } else { 42 ERROR("fail to load image [%s]\n", "particle s2.bmp");42 ERROR("fail to load image [%s]\n", "particle2.bmp"); 43 43 } 44 44 … … 69 69 glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE); 70 70 #endif 71 72 glEnable(GL_POINT_SPRITE_ARB);73 71 74 72 bool setSize = false; -
trunk/packages/vizservers/nanovis/PointShader.cpp
r2857 r2870 11 11 PointShader::PointShader() : 12 12 NvShader(), 13 _normal( 0)13 _normal(NULL) 14 14 { 15 15 loadVertexProgram("pointsvp.cg", "main"); -
trunk/packages/vizservers/nanovis/R2/include/R2/R2.h
r2841 r2870 3 3 #define R2_H 4 4 5 #include <math.h>6 #include <string.h>7 8 #include <GL/glew.h>9 #include <GL/gl.h>10 11 #ifndef PI12 # define PI 3.14159265358979323846f13 5 #endif 14 6 15 enum R2COLORFORMAT {16 R2_LUMINANCE = GL_LUMINANCE, /*< GL_LIMINANCE */17 R2_RGB8 = GL_RGB8, /*< GL_RGB8 */18 R2_RGB = GL_RGB, /*< GL_UNSIGNED_BYTE */19 R2_RGBA = GL_RGBA, /*< GL_FLOAT */20 R2_FLOAT_RGBA32 = GL_FLOAT_RGBA32_NV21 };22 23 enum R2DATATYPE {24 R2_UBYTE = GL_UNSIGNED_BYTE, /*< GL_UNSIGNED_BYTE */25 R2_FLOAT = GL_FLOAT, /*< GL_FLOAT */26 R2_UINT = GL_UNSIGNED_INT, /*< GL_UNSIGNED_INT */27 R2_INT = GL_INT /*< GL_INT */28 };29 30 enum R2TEXFILTER {31 R2_NEAREST = GL_NEAREST, /*< GL_NEAREST */32 R2_LINEAR = GL_LINEAR /*< GL_LINEAR */33 };34 35 enum R2TEXTARGET {36 R2_TEXTURE_1D = GL_TEXTURE_1D, /*< R2_TEXTURE_1D */37 R2_TEXTURE_2D = GL_TEXTURE_2D, /*< GL_TEXTURE_2D */38 R2_TEXTURE_RECTANGLE = GL_TEXTURE_RECTANGLE_NV, /*< GL_TEXTURE_RECTANGLE_NV */39 R2_TEXTURE_3D = GL_TEXTURE_3D /*< GL_TEXTURE_3D */40 41 };42 enum R2TEXWRAP {43 R2_CLAMP = GL_CLAMP, /*< GL_CLAMP */44 R2_CLAMP_TO_EDGE = GL_CLAMP_TO_EDGE, /*< GL_CLAMP_TO_EDGE */45 R2_REPEAT = GL_REPEAT /*< GL_REPEAT */46 };47 48 #define R2Assert(s)49 50 extern void R2Init();51 extern void R2Exit();52 53 #endif54 -
trunk/packages/vizservers/nanovis/R2/include/R2/R2string.h
r2841 r2870 2 2 #ifndef R2_STRING_H 3 3 #define R2_STRING_H 4 5 #include <string.h> 4 6 5 7 #include <R2/R2.h> -
trunk/packages/vizservers/nanovis/R2/include/R2/graphics/R2Geometry.h
r2827 r2870 19 19 20 20 public : 21 R2Geometry(int primitive, R2VertexBuffer *vertexBuffer,22 R2IndexBuffer *indexBuffer);23 R2Geometry(int primitive, R2VertexBuffer *pointBuffer,24 R2VertexBuffer * colorBuffer, R2IndexBuffer*indexBuffer);21 R2Geometry(int primitive, R2VertexBuffer *vertexBuffer, 22 R2IndexBuffer *indexBuffer); 23 R2Geometry(int primitive, R2VertexBuffer *pointBuffer, 24 R2VertexBuffer *colorBuffer, R2IndexBuffer *indexBuffer); 25 25 ~R2Geometry(); 26 26 -
trunk/packages/vizservers/nanovis/R2/include/R2/graphics/R2IndexBuffer.h
r2827 r2870 5 5 class R2IndexBuffer 6 6 { 7 int _indexCount;8 int *_data;9 10 7 public: 11 R2IndexBuffer(int indexCount, int *data, bool copy = true);8 R2IndexBuffer(int indexCount, int *data, bool copy = true); 12 9 ~R2IndexBuffer(); 13 10 14 11 int getIndexCount() const; 15 const int* getData() const; 12 const int *getData() const; 13 14 private: 15 int _indexCount; 16 int *_data; 16 17 }; 17 18 -
trunk/packages/vizservers/nanovis/R2/src/R2Fonts.cpp
r2841 r2870 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 2 #include <stdarg.h> 3 #include <string.h> 3 4 4 5 #include <fstream> 6 7 #include <GL/glew.h> 5 8 6 9 #include <R2/R2Fonts.h> -
trunk/packages/vizservers/nanovis/ScreenSnapper.cpp
r2853 r2870 24 24 25 25 ScreenSnapper::ScreenSnapper(int w, int h, GLuint type, 26 int channel _per_pixel)26 int channelsPerPixel) 27 27 { 28 width = w;29 height = h;28 _width = w; 29 _height = h; 30 30 31 31 //only allow two types 32 32 assert(type == GL_FLOAT || type == GL_UNSIGNED_BYTE); 33 data_type = type;33 _dataType = type; 34 34 35 35 //only allow RGB or RGBA 36 assert(channel _per_pixel == 3 || channel_per_pixel == 4);37 n_channels_per_pixel = channel_per_pixel;36 assert(channelsPerPixel == 3 || channelsPerPixel == 4); 37 _numChannelsPerPixel = channelsPerPixel; 38 38 39 39 if (type == GL_FLOAT) 40 data = new float[w*h*channel_per_pixel];40 _data = new float[w*h*channelsPerPixel]; 41 41 else if (type == GL_UNSIGNED_BYTE) 42 data = new unsigned char[w*h*channel_per_pixel];42 _data = new unsigned char[w*h*channelsPerPixel]; 43 43 44 assert( data != 0);44 assert(_data != 0); 45 45 reset(0); //reset data 46 46 } … … 48 48 ScreenSnapper::~ScreenSnapper() 49 49 { 50 if ( data_type == GL_FLOAT)51 delete[] (float *)data;52 else if( data_type == GL_UNSIGNED_BYTE)53 delete[] (unsigned char*) data;50 if (_dataType == GL_FLOAT) 51 delete[] (float *)_data; 52 else if(_dataType == GL_UNSIGNED_BYTE) 53 delete[] (unsigned char*)_data; 54 54 } 55 55 … … 58 58 { 59 59 unsigned int elemSize; 60 switch ( data_type) {60 switch (_dataType) { 61 61 case GL_FLOAT: 62 62 elemSize = sizeof(float); … … 70 70 } 71 71 unsigned int size; 72 size = elemSize * width * height * n_channels_per_pixel;73 memset( data, size, c);72 size = elemSize * _width * _height * _numChannelsPerPixel; 73 memset(_data, size, c); 74 74 } 75 75 … … 77 77 ScreenSnapper::capture() 78 78 { 79 if ( data_type == GL_FLOAT) {80 if ( n_channels_per_pixel == 3)81 glReadPixels(0, 0, width, height, GL_RGB, GL_FLOAT,data);82 else if ( n_channels_per_pixel == 4)83 glReadPixels(0, 0, width, height, GL_RGBA, GL_FLOAT,data);84 } else if ( data_type == GL_UNSIGNED_BYTE) {85 if ( n_channels_per_pixel == 3)86 glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE,data);87 else if ( n_channels_per_pixel == 4)88 glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE,data);79 if (_dataType == GL_FLOAT) { 80 if (_numChannelsPerPixel == 3) 81 glReadPixels(0, 0, _width, _height, GL_RGB, GL_FLOAT, _data); 82 else if (_numChannelsPerPixel == 4) 83 glReadPixels(0, 0, _width, _height, GL_RGBA, GL_FLOAT, _data); 84 } else if (_dataType == GL_UNSIGNED_BYTE) { 85 if (_numChannelsPerPixel == 3) 86 glReadPixels(0, 0, _width, _height, GL_RGB, GL_UNSIGNED_BYTE, _data); 87 else if (_numChannelsPerPixel == 4) 88 glReadPixels(0, 0, _width, _height, GL_RGBA, GL_UNSIGNED_BYTE, _data); 89 89 } 90 90 assert(glGetError() == 0); … … 94 94 ScreenSnapper::print() 95 95 { 96 for (int i = 0; i < width*height; i++) {97 if ( data_type == GL_FLOAT) {98 if ( n_channels_per_pixel == 3) {99 TRACE("(%f %f %f) ", ((float *)data)[3*i],100 ((float*) data)[3*i+1], ((float*)data)[3*i+2]);101 } else if ( n_channels_per_pixel==4) {102 TRACE("(%f %f %f %f) ", ((float *)data)[4*i],103 ((float *)data)[4*i+1],104 ((float *)data)[4*i+2],105 ((float *)data)[4*i+3]);96 for (int i = 0; i < _width*_height; i++) { 97 if (_dataType == GL_FLOAT) { 98 if (_numChannelsPerPixel == 3) { 99 TRACE("(%f %f %f) ", ((float *)_data)[3*i], 100 ((float*)_data)[3*i+1], ((float *)_data)[3*i+2]); 101 } else if (_numChannelsPerPixel == 4) { 102 TRACE("(%f %f %f %f) ", ((float *)_data)[4*i], 103 ((float *)_data)[4*i+1], 104 ((float *)_data)[4*i+2], 105 ((float *)_data)[4*i+3]); 106 106 } 107 } else if ( data_type == GL_UNSIGNED_BYTE) {108 if ( n_channels_per_pixel==3) {107 } else if (_dataType == GL_UNSIGNED_BYTE) { 108 if (_numChannelsPerPixel == 3) { 109 109 TRACE("(%d %d %d) ", 110 ((unsigned char *)data)[3*i],111 ((unsigned char *)data)[3*i+1],112 ((unsigned char *)data)[3*i+2]);113 } else if ( n_channels_per_pixel == 4) {110 ((unsigned char *)_data)[3*i], 111 ((unsigned char *)_data)[3*i+1], 112 ((unsigned char *)_data)[3*i+2]); 113 } else if (_numChannelsPerPixel == 4) { 114 114 TRACE("(%d %d %d %d) ", 115 ((unsigned char *)data)[4*i],116 ((unsigned char *)data)[4*i+1],117 ((unsigned char *)data)[4*i+2],118 ((unsigned char *)data)[4*i+3]);115 ((unsigned char *)_data)[4*i], 116 ((unsigned char *)_data)[4*i+1], 117 ((unsigned char *)_data)[4*i+2], 118 ((unsigned char *)_data)[4*i+3]); 119 119 } 120 120 } -
trunk/packages/vizservers/nanovis/ScreenSnapper.h
r2853 r2870 23 23 #include <GL/glew.h> 24 24 25 #include "define.h"26 27 25 class ScreenSnapper 28 26 { … … 38 36 void print(); 39 37 40 int width; ///< width of the screen 41 int height; ///< height of the screen 42 GLuint data_type; ///< GL_FLOAT or GL_UNSIGNED_BYTE 43 int n_channels_per_pixel; ///< RGB(3) or RGBA(4) 38 private: 39 int _width; ///< width of the screen 40 int _height; ///< height of the screen 41 GLuint _dataType; ///< GL_FLOAT or GL_UNSIGNED_BYTE 42 int _numChannelsPerPixel; ///< RGB(3) or RGBA(4) 44 43 45 44 /** … … 49 48 * [rgb][rgb][rgb]... or [rgba][rgba][rgba]... 50 49 */ 51 void * data;50 void *_data; 52 51 }; 53 52 -
trunk/packages/vizservers/nanovis/VelocityArrowsSlice.cpp
r2857 r2870 10 10 #include <ImageLoader.h> 11 11 12 #include "nanovis.h" 12 13 #include "VelocityArrowsSlice.h" 13 #include " global.h"14 #include "NvShader.h" 14 15 15 16 VelocityArrowsSlice::VelocityArrowsSlice() … … 99 100 100 101 _arrowColor.set(1, 1, 0); 102 103 GLfloat minMax[2]; 104 glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, minMax); 105 TRACE("Aliased point size range: %g %g\n", minMax[0], minMax[1]); 106 _maxPointSize = minMax[1]; 107 glGetFloatv(GL_SMOOTH_POINT_SIZE_RANGE, minMax); 108 TRACE("Smooth point size range: %g %g\n", minMax[0], minMax[1]); 109 _maxPointSize = minMax[1] > _maxPointSize ? minMax[1] : _maxPointSize; 110 TRACE("Max point size: %g\n", _maxPointSize); 101 111 102 112 TRACE("Leaving VelocityArrowsSlice constructor\n"); … … 255 265 glVertex3f(pos.x, pos.y, pos.z); 256 266 glVertex3f(pos2.x, pos2.y, pos2.z); 257 /*v = pos - pos2;258 v2.x = 1;259 v2.y = 1;260 v2.z = (-(x1-x2)-(y1-y2))/(z1-z2)261 adj = v.length() / (4 * sqrt((x3^2)+(y3^2)+(z3^2)));262 x3 *= adj263 y3 *= adj264 z3 *= adj265 */266 267 } 267 268 } … … 296 297 glEnable(GL_BLEND); 297 298 glBlendFunc(GL_SRC_ALPHA, GL_ONE); 298 glEnable(GL_POINT_SPRITE_ NV);299 glEnable(GL_POINT_SPRITE_ARB); 299 300 glPointSize(20); 300 301 glEnable(GL_VERTEX_PROGRAM_POINT_SIZE_NV); … … 305 306 glPointParameterfARB(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 0.0f); 306 307 glPointParameterfARB(GL_POINT_SIZE_MIN_ARB, 1.0f); 307 glPointParameterfARB(GL_POINT_SIZE_MAX_ARB, 100.0f);308 glPointParameterfARB(GL_POINT_SIZE_MAX_ARB, _maxPointSize); 308 309 glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE); 309 310 … … 317 318 318 319 //cgSetParameter1f(_mvTanHalfFOVParam, -tan(_fov * 0.5) * _screenHeight * 0.5); 320 cgSetParameter1f(_mvTanHalfFOVParam, tan(30. * 0.5) * NanoVis::win_height * 0.5); 319 321 320 322 cgGLSetStateMatrixParameter(_mvpParticleParam, -
trunk/packages/vizservers/nanovis/VelocityArrowsSlice.h
r2857 r2870 93 93 unsigned int _fbo; 94 94 unsigned int _tex; 95 float _maxPointSize; 95 96 96 97 CGcontext _context; -
trunk/packages/vizservers/nanovis/Volume.h
r2857 r2870 22 22 #include <R2/R2Object.h> 23 23 24 #include "define.h"25 24 #include "Color.h" 26 25 #include "Texture3D.h" -
trunk/packages/vizservers/nanovis/define.h
r2831 r2870 18 18 19 19 #include <GL/glew.h> 20 #include <Cg/cgGL.h>21 20 22 21 #define CHECK_FRAMEBUFFER_STATUS() \ … … 60 59 } while(0) 61 60 61 inline void 62 draw_quad(int w, int h, int tw, int th) 63 { 64 glBegin(GL_QUADS); 65 glTexCoord2f(0, 0); glVertex2f(0, 0); 66 glTexCoord2f((float)tw, 0); glVertex2f((float)w, 0); 67 glTexCoord2f((float)tw, (float)th); glVertex2f((float)w, (float) h); 68 glTexCoord2f(0, (float)th); glVertex2f(0, (float) h); 69 glEnd(); 70 } 71 62 72 #endif -
trunk/packages/vizservers/nanovis/nanovis.cpp
r2863 r2870 63 63 #include "HeightMap.h" 64 64 #include "NvCamera.h" 65 #include "NvEventLog.h" 66 #include "RenderContext.h" 67 #include "NvShader.h" 65 68 #include "NvColorTableRenderer.h" 66 #include "NvEventLog.h"67 69 #include "NvFlowVisRenderer.h" 68 70 #include "NvLIC.h" … … 74 76 #include "PointSet.h" 75 77 #endif 76 #include "RenderContext.h"77 78 #include "Switch.h" 78 79 #include "Trace.h" … … 84 85 85 86 #define SIZEOF_BMP_HEADER 54 86 87 extern void NvInitCG(); // in Shader.cpp88 87 89 88 /// Indicates "up" axis … … 192 191 193 192 PerfQuery *perf = NULL; //perfromance counter 194 195 CGprogram m_passthru_fprog;196 CGparameter m_passthru_scale_param, m_passthru_bias_param;197 193 198 194 // Variables for mouse events … … 360 356 removeAllData(); 361 357 358 NvShader::exitCg(); 359 362 360 #ifdef EVENTLOG 363 361 NvExitEventLog(); … … 373 371 closelog(); 374 372 exit(code); 375 }376 377 CGprogram378 LoadCgSourceProgram(CGcontext context, const char *fileName, CGprofile profile,379 const char *entryPoint)380 {381 const char *path = R2FilePath::getInstance()->getPath(fileName);382 if (path == NULL) {383 ERROR("can't find program \"%s\"\n", fileName);384 }385 TRACE("cg program compiling: %s\n", path);386 CGprogram program;387 program = cgCreateProgramFromFile(context, CG_SOURCE, path, profile,388 entryPoint, NULL);389 cgGLLoadProgram(program);390 CGerror LastError = cgGetError();391 if (LastError) {392 ERROR("Error message: %s\n", cgGetLastListing(context));393 }394 TRACE("successfully compiled program: %s\n", path);395 delete [] path;396 return program;397 373 } 398 374 … … 719 695 void CgErrorCallback(void) 720 696 { 721 CGerror lastError = cgGetError(); 722 723 if (lastError) { 724 TRACE("\n---------------------------------------------------\n"); 725 TRACE("%s\n\n", cgGetErrorString(lastError)); 726 TRACE("%s\n", cgGetLastListing(g_context)); 727 TRACE("-----------------------------------------------------\n"); 697 if (!NvShader::printErrorInfo()) { 728 698 TRACE("Cg error, exiting...\n"); 729 cgDestroyContext(g_context);730 699 DoExit(-1); 731 700 } … … 735 704 { 736 705 // print system information 737 system_info(); 706 TRACE("-----------------------------------------------------------\n"); 707 TRACE("OpenGL driver: %s %s\n", glGetString(GL_VENDOR), 708 glGetString(GL_VERSION)); 709 TRACE("Graphics hardware: %s\n", glGetString(GL_RENDERER)); 710 TRACE("-----------------------------------------------------------\n"); 738 711 739 712 if (path == NULL) { … … 758 731 ImageLoaderFactory::getInstance()->addLoaderImpl("bmp", new BMPImageLoaderImpl()); 759 732 760 Nv InitCG();733 NvShader::initCg(); 761 734 NvShader::setErrorCallback(CgErrorCallback); 762 735 … … 774 747 licRenderer = new NvLIC(NMESH, NPIX, NPIX, lic_axis, 775 748 Vector3(lic_slice_x, lic_slice_y, lic_slice_z), 776 g_context);749 NvShader::getCgContext()); 777 750 778 751 grid = new Grid(); … … 841 814 renderContext = new graphics::RenderContext(); 842 815 843 //create n2D plane renderer816 //create a 2D plane renderer 844 817 plane_renderer = new PlaneRenderer(win_width, win_height); 845 818 #if PROTOTYPE -
trunk/packages/vizservers/nanovis/nanovis.h
r2847 r2870 30 30 #include <rappture.h> 31 31 32 #include "define.h"33 #include "global.h"34 32 #include "config.h" 35 33
Note: See TracChangeset
for help on using the changeset viewer.