- Timestamp:
- Oct 30, 2008, 1:33:15 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/nanovis.cpp
r1204 r1205 134 134 135 135 //frame buffer for final rendering 136 char dummy0[2000];137 136 NVISid NanoVis::final_color_tex = 0; 138 137 NVISid NanoVis::final_depth_rb = 0; 139 char dummy1[2000];140 138 NVISid NanoVis::final_fbo = 0; 141 139 int NanoVis::render_window = 0; /* GLUT handle for the render window */ 142 char dummy2[2000];143 140 int NanoVis::win_width = NPIX; /* Width of the render window */ 144 141 int NanoVis::win_height = NPIX; /* Height of the render window */ 145 142 146 char dummy3[2000];147 143 unsigned char* NanoVis::screen_buffer = NULL; 148 char dummy4[2000];149 144 150 145 /* FIXME: This variable is always true. */ … … 414 409 int result; 415 410 411 if (NanoVis::debug_flag) { 412 fprintf(stderr, "in ExecuteCommand(%s)\n", Tcl_DStringValue(dsPtr)); 413 } 414 416 415 gettimeofday(&tv, NULL); 417 416 start = CVT2SECS(tv); 418 417 419 #ifdef notdef 420 if (NanoVis::debug_flag) { 421 fprintf(NanoVis::logfile, "%s\n", Tcl_DStringValue(dsPtr)); 418 if (NanoVis::logfile != NULL) { 419 fprintf(NanoVis::logfile, "%s", Tcl_DStringValue(dsPtr)); 422 420 fflush(NanoVis::logfile); 423 421 } 424 #endif425 422 if (NanoVis::recfile != NULL) { 426 423 fprintf(NanoVis::recfile, "%s", Tcl_DStringValue(dsPtr)); … … 435 432 stats.cmdTime += finish - start; 436 433 stats.nCommands++; 434 if (NanoVis::debug_flag) { 435 fprintf(stderr, "leaving ExecuteCommand status=%d\n", result); 436 } 437 437 return result; 438 438 } … … 616 616 #else 617 617 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, win_width, win_height, 0, 618 GL_RGB, GL_UNSIGNED_BYTE, NULL); 619 #endif 620 if (!CheckGL("glTexImage2D")) { 621 return; 622 } 618 GL_RGB, GL_INT, NULL); 619 #endif 623 620 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, final_fbo); 624 625 621 glGenRenderbuffersEXT(1, &final_depth_rb); 626 622 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); 627 623 glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, 628 624 win_width, win_height); 629 630 625 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, 631 626 GL_TEXTURE_2D, final_color_tex, 0); … … 633 628 GL_RENDERBUFFER_EXT, final_depth_rb); 634 629 635 CheckGL("glFramebufferTexture2DEXT");636 637 630 GLenum status; 638 631 if (!CheckFBO(&status)) { … … 655 648 NanoVis::resize_offscreen_buffer(int w, int h) 656 649 { 650 if ((w == win_width) && (h == win_height)) { 651 return; 652 } 653 if (NanoVis::stdin != ::stdin) { 654 return; 655 } 656 657 657 if (debug_flag) { 658 658 fprintf(stderr, "in resize_offscreen_buffer(%d, %d)\n", w, h); 659 659 } 660 660 661 win_width = w; 661 662 win_height = h; … … 665 666 } 666 667 //fprintf(stderr, "screen_buffer size: %d\n", sizeof(screen_buffer)); 667 printf("screen_buffer size: %d %d\n", w, h); 668 if (debug_flag) { 669 fprintf(stderr, "screen_buffer size: %d %d\n", w, h); 670 } 668 671 669 672 if (screen_buffer) { … … 677 680 //delete the current render buffer resources 678 681 glDeleteTextures(1, &final_color_tex); 679 glDeleteFramebuffersEXT(1, &final_fbo);680 681 682 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); 682 683 glDeleteRenderbuffersEXT(1, &final_depth_rb); 683 684 //change the camera setting 685 cam->set_screen_size(0, 0, win_width, win_height); 686 plane_render->set_screen_size(win_width, win_height); 687 684 685 if (debug_flag) { 686 fprintf(stderr, "before deleteframebuffers\n"); 687 } 688 glDeleteFramebuffersEXT(1, &final_fbo); 689 690 if (debug_flag) { 691 fprintf(stderr, "reinitialize FBO\n"); 692 } 688 693 //Reinitialize final fbo for final display 689 694 glGenFramebuffersEXT(1, &final_fbo); 690 695 691 696 glGenTextures(1, &final_color_tex); 692 697 glBindTexture(GL_TEXTURE_2D, final_color_tex); 698 693 699 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 694 700 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); … … 700 706 GL_RGB, GL_INT, NULL); 701 707 #endif 708 if (debug_flag) { 709 fprintf(stderr, "before bindframebuffer\n"); 710 } 702 711 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, final_fbo); 703 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,704 GL_TEXTURE_2D, final_color_tex, 0);705 712 if (debug_flag) { 713 fprintf(stderr, "after bindframebuffer\n"); 714 } 706 715 glGenRenderbuffersEXT(1, &final_depth_rb); 707 716 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb); 708 717 glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, 709 718 win_width, win_height); 719 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, 720 GL_TEXTURE_2D, final_color_tex, 0); 710 721 glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, 711 722 GL_RENDERBUFFER_EXT, final_depth_rb); 712 723 713 CheckGL("glFramebufferText2DEXT");714 724 GLenum status; 715 725 if (!CheckFBO(&status)) { … … 719 729 720 730 //CHECK_FRAMEBUFFER_STATUS(); 731 if (debug_flag) { 732 fprintf(stderr, "change camera\n"); 733 } 734 //change the camera setting 735 cam->set_screen_size(0, 0, win_width, win_height); 736 plane_render->set_screen_size(win_width, win_height); 737 721 738 if (debug_flag) { 722 739 fprintf(stderr, "leaving resize_offscreen_buffer(%d, %d)\n", w, h); … … 2150 2167 // 2151 2168 if (debug_flag) { 2152 fprintf(stderr, "in xinetd_listen: check eof %d\n", feof(NanoVis::stdin)); 2169 fprintf(stderr, "in xinetd_listen: check eof %d\n", 2170 feof(NanoVis::stdin)); 2153 2171 } 2154 2172 while (!feof(NanoVis::stdin)) { … … 2243 2261 if (debug_flag) { 2244 2262 fprintf(stderr, "ppm image not written (debug mode)\n"); 2263 bmp_write_to_file(1, "/tmp"); 2245 2264 } else { 2246 2265 NanoVis::ppm_write("nv>image -bytes"); … … 2401 2420 NanoVis::interp = initTcl(); 2402 2421 NanoVis::resize_offscreen_buffer(NanoVis::win_width, NanoVis::win_height); 2403 2404 2422 glutMainLoop(); 2405 2423
Note: See TracChangeset
for help on using the changeset viewer.