- Timestamp:
- Oct 28, 2008, 6:12:55 PM (16 years ago)
- Location:
- trunk/packages/vizservers/nanovis
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/Trace.cpp
r911 r1196 2 2 #include <stdio.h> 3 3 #include <stdarg.h> 4 5 #include <GL/glew.h> 6 #include <GL/glut.h> 4 7 5 8 void Trace(const char* format, ...) … … 15 18 } 16 19 20 void 21 CheckFramebuffer(const char *string) 22 { 23 fprintf(stderr, "FB Status: %s: ", string); 24 GLenum status = (GLenum)glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); 25 switch(status) { 26 case GL_FRAMEBUFFER_COMPLETE_EXT: 27 fprintf(stderr, "<<<< OK >>>>\n"); 28 break; 29 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: 30 fprintf(stderr, "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT\n"); 31 break; 32 case GL_FRAMEBUFFER_UNSUPPORTED_EXT: 33 fprintf(stderr, "GL_FRAMEBUFFER_UNSUPPORTED_EXT\n"); 34 break; 35 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT: 36 fprintf(stderr, "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT\n"); 37 break; 38 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: 39 fprintf(stderr, "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT\n"); 40 break; 41 case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT: 42 fprintf(stderr, "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT\n"); 43 break; 44 case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT: 45 fprintf(stderr, "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT\n"); 46 break; 47 case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT: 48 fprintf(stderr, "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT\n"); 49 break; 50 default: 51 fprintf(stderr, "UNKNOWN framebuffer status %d\n", status); 52 } 53 } 54 55 bool 56 CheckGL(const char *string) 57 { 58 fprintf(stderr, "GL Status: %s: ", string); 59 GLenum status = (GLenum)glGetError(); 60 switch(status) { 61 case GL_NO_ERROR: 62 fprintf(stderr, "OK\n"); 63 return true; 64 case GL_INVALID_ENUM: 65 fprintf(stderr, "GL_INVALID_ENUM\n"); 66 break; 67 case GL_INVALID_VALUE: 68 fprintf(stderr, "GL_INVALID_VALUE\n"); 69 break; 70 case GL_INVALID_OPERATION: 71 fprintf(stderr, "GL_INVALID_OPERATION\n"); 72 break; 73 case GL_STACK_OVERFLOW: 74 fprintf(stderr, "GL_STACK_OVERFLOW\n"); 75 break; 76 case GL_STACK_UNDERFLOW: 77 fprintf(stderr, "GL_STACK_UNDERFLOW\n"); 78 break; 79 case GL_OUT_OF_MEMORY: 80 fprintf(stderr, "GL_OUT_OF_MEMORY\n"); 81 break; 82 case GL_INVALID_FRAMEBUFFER_OPERATION_EXT: 83 fprintf(stderr, "GL_INVALID_FRAMEBUFFER_OPERATION_EXT\n"); 84 break; 85 default: 86 fprintf(stderr, "UNKNOWN GL status %d\n", status); 87 } 88 return false; 89 } 90 91 -
trunk/packages/vizservers/nanovis/Trace.h
r911 r1196 3 3 4 4 extern void Trace(const char* format, ...); 5 5 extern void CheckFramebuffer(const char *string); 6 extern bool CheckGL(const char *string); 6 7 #endif -
trunk/packages/vizservers/nanovis/define.h
r1188 r1196 36 36 typedef GLuint NVISid; //OpenGL identifier: unsigned int 37 37 38 #define CHECK_FRAMEBUFFER_STATUS() \ 39 { \ 40 GLenum status; \ 41 status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); \ 42 fprintf(stderr, "%x\n", status); \ 43 switch(status) { \ 44 case GL_FRAMEBUFFER_COMPLETE_EXT: \ 45 fprintf(stderr,"framebuffer complete!\n"); \ 46 break; \ 47 case GL_FRAMEBUFFER_UNSUPPORTED_EXT: \ 48 fprintf(stderr,"framebuffer GL_FRAMEBUFFER_UNSUPPORTED_EXT\n"); \ 49 /* you gotta choose different formats */ \ 50 assert(0); \ 51 break; \ 52 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: \ 53 fprintf(stderr,"framebuffer INCOMPLETE_ATTACHMENT\n"); \ 54 break; \ 55 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT: \ 56 fprintf(stderr,"framebuffer FRAMEBUFFER_MISSING_ATTACHMENT\n"); \ 57 break; \ 58 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: \ 59 fprintf(stderr,"framebuffer FRAMEBUFFER_DIMENSIONS\n");\ 60 break; \ 61 case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT: \ 62 fprintf(stderr,"framebuffer INCOMPLETE_FORMATS\n");\ 63 break; \ 64 case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT: \ 65 fprintf(stderr,"framebuffer INCOMPLETE_DRAW_BUFFER\n");\ 66 break; \ 67 case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT: \ 68 fprintf(stderr,"framebuffer INCOMPLETE_READ_BUFFER\n");\ 69 break; \ 70 case GL_FRAMEBUFFER_BINDING_EXT: \ 71 fprintf(stderr,"framebuffer BINDING_EXT\n");\ 72 break; \ 73 /* 74 * case GL_FRAMEBUFFER_STATUS_ERROR_EXT: \ 75 * fprintf(stderr,"framebuffer STATUS_ERROR\n");\ 76 * break; \ 77 * */ \ 78 default: \ 79 fprintf(stderr,"unknown framebuffer error %d\n", status);\ 80 /* programming error; will fail on all hardware */ \ 81 assert(0); \ 82 }\ 83 } 84 85 #ifdef notdef 86 38 87 39 88 #define CHECK_FRAMEBUFFER_STATUS() \ … … 53 102 } \ 54 103 } 104 #endif 55 105 56 106 // use this to send debug messages back to the client -
trunk/packages/vizservers/nanovis/global.h
r1111 r1196 22 22 #include <stdio.h> 23 23 24 #ifdef notdef 25 #define CHECK_FRAMEBUFFER_STATUS() \ 26 {\ 27 GLenum status; \ 28 status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); \ 29 fprintf(stderr, "%x\n", status);\ 30 switch(status) { \ 31 case GL_FRAMEBUFFER_COMPLETE_EXT: \ 32 fprintf(stderr,"framebuffer complete!\n");\ 33 break; \ 34 case GL_FRAMEBUFFER_UNSUPPORTED_EXT: \ 35 fprintf(stderr,"framebuffer GL_FRAMEBUFFER_UNSUPPORTED_EXT\n");\ 36 /* you gotta choose different formats */ \ 37 assert(0); \ 38 break; \ 39 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: \ 40 fprintf(stderr,"framebuffer INCOMPLETE_ATTACHMENT\n");\ 41 break; \ 42 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT: \ 43 fprintf(stderr,"framebuffer FRAMEBUFFER_MISSING_ATTACHMENT\n");\ 44 break; \ 45 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: \ 46 fprintf(stderr,"framebuffer FRAMEBUFFER_DIMENSIONS\n");\ 47 break; \ 48 case GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT: \ 49 fprintf(stderr,"framebuffer INCOMPLETE_DUPLICATE_ATTACHMENT\n");\ 50 break; \ 51 case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT: \ 52 fprintf(stderr,"framebuffer INCOMPLETE_FORMATS\n");\ 53 break; \ 54 case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT: \ 55 fprintf(stderr,"framebuffer INCOMPLETE_DRAW_BUFFER\n");\ 56 break; \ 57 case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT: \ 58 fprintf(stderr,"framebuffer INCOMPLETE_READ_BUFFER\n");\ 59 break; \ 60 case GL_FRAMEBUFFER_BINDING_EXT: \ 61 fprintf(stderr,"framebuffer BINDING_EXT\n");\ 62 break; \ 63 /* 64 * case GL_FRAMEBUFFER_STATUS_ERROR_EXT: \ 65 * fprintf(stderr,"framebuffer STATUS_ERROR\n");\ 66 * break; \ 67 * */ \ 68 default: \ 69 /* programming error; will fail on all hardware */ \ 70 assert(0); \ 71 }\ 72 } 73 24 74 #define CHECK_FRAMEBUFFER_STATUS() \ 25 75 { \ … … 38 88 } \ 39 89 } 40 90 #endif 41 91 42 92 inline void -
trunk/packages/vizservers/nanovis/imgLoaders/BMPImageLoaderImpl.cpp
r929 r1196 20 20 Image* image = 0; 21 21 22 printf("opening image file \"%s\"\n", fileName); 22 23 FILE* f = fopen(fileName, "rb"); 23 24 -
trunk/packages/vizservers/nanovis/nanovis.cpp
r1195 r1196 42 42 43 43 #include "nanovis.h" 44 #include "define.h" 44 45 #include "RpField1D.h" 45 46 #include "RpFieldRect3D.h" … … 133 134 134 135 //frame buffer for final rendering 135 NVISid NanoVis::final_fbo = 0;136 char dummy0[2000]; 136 137 NVISid NanoVis::final_color_tex = 0; 137 138 NVISid NanoVis::final_depth_rb = 0; 139 char dummy1[2000]; 140 NVISid NanoVis::final_fbo = 0; 138 141 int NanoVis::render_window = 0; /* GLUT handle for the render window */ 142 char dummy2[2000]; 139 143 int NanoVis::win_width = NPIX; /* Width of the render window */ 140 144 int NanoVis::win_height = NPIX; /* Height of the render window */ 141 145 146 char dummy3[2000]; 142 147 unsigned char* NanoVis::screen_buffer = NULL; 148 char dummy4[2000]; 143 149 144 150 /* FIXME: This variable is always true. */ … … 166 172 CGprogram m_passthru_fprog; 167 173 CGparameter m_passthru_scale_param, m_passthru_bias_param; 168 169 174 170 175 // Variables for mouse events … … 545 550 546 551 int 547 NanoVis::render_legend( 548 TransferFunction *tf, 549 double min, double max, 550 i nt width, int height,551 const char* volArg)552 { 552 NanoVis::render_legend(TransferFunction *tf, double min, double max, 553 int width, int height, const char* volArg) 554 { 555 if (debug_flag) { 556 fprintf(stderr, "in render_legend\n"); 557 } 553 558 int old_width = win_width; 554 559 int old_height = win_height; … … 583 588 resize_offscreen_buffer(old_width, old_height); 584 589 590 if (debug_flag) { 591 fprintf(stderr, "leaving render_legend\n"); 592 } 585 593 return TCL_OK; 586 594 } … … 590 598 NanoVis::init_offscreen_buffer() 591 599 { 592 //initialize final fbo for final display 600 if (debug_flag) { 601 fprintf(stderr, "in init_offscreen_buffer\n"); 602 } 603 604 glGenTextures(1, &final_color_tex); 605 glBindTexture(GL_TEXTURE_2D, final_color_tex); 606 607 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 608 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 609 #ifdef NV40 610 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, win_width, win_height, 0, 611 GL_RGB, GL_INT, NULL); 612 #else 613 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, win_width, win_height, 0, 614 GL_RGBA, GL_INT, NULL); 615 616 #endif 617 if (!CheckGL("glTexImage2D")) { 618 return; 619 } 620 621 glGenRenderbuffersEXT(1, &final_depth_rb); 622 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); 623 glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, 624 GL_DEPTH_COMPONENT24, win_width, win_height); 625 626 // Initialize a fbo for final display. 627 glGenFramebuffersEXT(1, &final_fbo); 628 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, final_fbo); 629 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, 630 GL_COLOR_ATTACHMENT0_EXT, 631 GL_TEXTURE_2D, final_color_tex, 0); 632 glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, 633 GL_DEPTH_ATTACHMENT_EXT, 634 GL_RENDERBUFFER_EXT, final_depth_rb); 635 CheckGL("glFramebufferTexture2DEXT"); 636 CheckFramebuffer("final_fbo"); 637 638 639 // Check framebuffer completeness at the end of initialization. 640 //CHECK_FRAMEBUFFER_STATUS(); 641 //NanoVis::display(); 642 643 //assert(glGetError()==0); 644 if (debug_flag) { 645 fprintf(stderr, "leaving init_offscreen_buffer\n"); 646 } 647 } 648 649 650 //resize the offscreen buffer 651 void 652 NanoVis::resize_offscreen_buffer(int w, int h) 653 { 654 if (debug_flag) { 655 fprintf(stderr, "in resize_offscreen_buffer(%d, %d)\n", w, h); 656 } 657 win_width = w; 658 win_height = h; 659 660 if (fonts) { 661 fonts->resize(w, h); 662 } 663 664 //fprintf(stderr, "screen_buffer size: %d\n", sizeof(screen_buffer)); 665 printf("screen_buffer size: %d %d\n", w, h); 666 667 if (screen_buffer) { 668 delete[] screen_buffer; 669 screen_buffer = NULL; 670 } 671 672 screen_buffer = new unsigned char[4*win_width*win_height]; 673 assert(screen_buffer != NULL); 674 675 //delete the current render buffer resources 676 glDeleteTextures(1, &final_color_tex); 677 glDeleteFramebuffersEXT(1, &final_fbo); 678 679 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); 680 glDeleteRenderbuffersEXT(1, &final_depth_rb); 681 682 //change the camera setting 683 cam->set_screen_size(0, 0, win_width, win_height); 684 plane_render->set_screen_size(win_width, win_height); 685 686 //Reinitialize final fbo for final display 593 687 glGenFramebuffersEXT(1, &final_fbo); 594 688 glGenTextures(1, &final_color_tex); … … 596 690 597 691 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, final_fbo); 692 CheckFramebuffer("final_fbo"); 598 693 599 694 //initialize final color texture … … 612 707 GL_TEXTURE_2D, final_color_tex, 0); 613 708 709 CheckGL("glFramebufferText2DEXT"); 710 CheckFramebuffer("final_color_tex"); 711 CHECK_FRAMEBUFFER_STATUS(); 712 614 713 // initialize final depth renderbuffer 615 714 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); … … 621 720 622 721 // Check framebuffer completeness at the end of initialization. 722 CheckGL("glFramebufferRenderbufferEXT"); 723 CheckFramebuffer("final_depth_rb"); 623 724 CHECK_FRAMEBUFFER_STATUS(); 624 625 //assert(glGetError()==0); 626 } 627 628 629 //resize the offscreen buffer 630 void 631 NanoVis::resize_offscreen_buffer(int w, int h) 632 { 633 win_width = w; 634 win_height = h; 635 636 if (fonts) { 637 fonts->resize(w, h); 638 } 639 640 //fprintf(stderr, "screen_buffer size: %d\n", sizeof(screen_buffer)); 641 printf("screen_buffer size: %d %d\n", w, h); 642 643 if (screen_buffer) { 644 delete[] screen_buffer; 645 screen_buffer = NULL; 646 } 647 648 screen_buffer = new unsigned char[4*win_width*win_height]; 649 assert(screen_buffer != NULL); 650 651 //delete the current render buffer resources 652 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, final_fbo); 653 glDeleteTextures(1, &final_color_tex); 654 glDeleteFramebuffersEXT(1, &final_fbo); 655 656 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); 657 glDeleteRenderbuffersEXT(1, &final_depth_rb); 658 659 //change the camera setting 660 cam->set_screen_size(0, 0, win_width, win_height); 661 plane_render->set_screen_size(win_width, win_height); 662 663 //Reinitialize final fbo for final display 664 glGenFramebuffersEXT(1, &final_fbo); 665 glGenTextures(1, &final_color_tex); 666 glGenRenderbuffersEXT(1, &final_depth_rb); 667 668 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, final_fbo); 669 670 //initialize final color texture 671 glBindTexture(GL_TEXTURE_2D, final_color_tex); 672 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 673 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 674 #ifdef NV40 675 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, win_width, win_height, 0, 676 GL_RGB, GL_INT, NULL); 677 #else 678 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, win_width, win_height, 0, 679 GL_RGB, GL_INT, NULL); 680 #endif 681 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, 682 GL_COLOR_ATTACHMENT0_EXT, 683 GL_TEXTURE_2D, final_color_tex, 0); 684 685 // initialize final depth renderbuffer 686 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); 687 glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, 688 GL_DEPTH_COMPONENT24, win_width, win_height); 689 glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, 690 GL_DEPTH_ATTACHMENT_EXT, 691 GL_RENDERBUFFER_EXT, final_depth_rb); 692 693 // Check framebuffer completeness at the end of initialization. 694 CHECK_FRAMEBUFFER_STATUS(); 695 //assert(glGetError()==0); 725 if (debug_flag) { 726 fprintf(stderr, "leaving resize_offscreen_buffer(%d, %d)\n", w, h); 727 } 696 728 } 697 729 … … 790 822 GLenum err = glewInit(); 791 823 if (GLEW_OK != err) { 792 //glew init failed, exit.793 824 fprintf(stderr, "Error: %s\n", glewGetErrorString(err)); 794 825 getchar(); … … 823 854 grid->setFont(fonts); 824 855 856 #ifdef notdef 825 857 pointset_renderer = new PointSetRenderer(); 858 #endif 826 859 } 827 860 … … 830 863 NanoVis::initGL(void) 831 864 { 865 if (debug_flag) { 866 fprintf(stderr, "in initGL\n"); 867 } 832 868 //buffer to store data read from the screen 833 869 if (screen_buffer) { … … 879 915 vol_renderer = new VolumeRenderer(); 880 916 881 882 917 // create 883 918 renderContext = new graphics::RenderContext(); 884 919 885 #ifdef notdef886 //I added this to debug : Wei887 float tmp_data[4*124];888 memset(tmp_data, 0, 4*4*124);889 TransferFunction* tmp_tf = new TransferFunction(124, tmp_data);890 vol_renderer->add_volume(volume[0], tmp_tf);891 volume[0]->get_cutplane(0)->enabled = false;892 volume[0]->get_cutplane(1)->enabled = false;893 volume[0]->get_cutplane(2)->enabled = false;894 895 //volume[1]->move(Vector3(0.5, 0.6, 0.7));896 //vol_renderer->add_volume(volume[1], tmp_tf);897 #endif898 899 920 //create an 2D plane renderer 900 921 plane_render = new PlaneRenderer(g_context, win_width, win_height); … … 910 931 NanoVis::init_lic(); 911 932 #endif 933 if (debug_flag) { 934 fprintf(stderr, "leaving initGL\n"); 935 } 912 936 } 913 937 … … 2385 2409 } 2386 2410 NanoVis::initGL(); 2411 #ifdef EVENTLOG 2412 NvInitEventLog(); 2413 #endif 2387 2414 Tcl_DStringInit(&NanoVis::cmdbuffer); 2388 2415 NanoVis::interp = initTcl(); 2389 2416 2390 #ifdef EVENTLOG2391 NvInitEventLog();2392 #endif2393 2417 glutMainLoop(); 2394 2418
Note: See TracChangeset
for help on using the changeset viewer.