Changeset 383 for trunk/gui/vizservers
- Timestamp:
- Mar 28, 2006, 2:27:09 PM (19 years ago)
- Location:
- trunk/gui/vizservers/nanovis
- Files:
-
- 2 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/vizservers/nanovis/Makefile
r379 r383 2 2 Texture1D.o Texture3D.o Volume.o Texture2D.o ParticleSystem.o Sphere.o Color.o \ 3 3 PerfQuery.o TransferFunction.o ControlPoint.o ColorGradient.o ColorPaletteWindow.o\ 4 ColorGradientGLUTWindow.o TransferFunctionGLUTWindow.o MainWindow.o 4 ColorGradientGLUTWindow.o TransferFunctionGLUTWindow.o MainWindow.o Event.o 5 OBJ_CLIENT = Socket.o ClientSocket.o RenderClient.o 5 6 6 7 AUXSRC = config.h define.h global.h … … 14 15 CFLAG = -g -c -Wall -I../src2/core 15 16 16 all: nanovis 17 all: nanovis client 17 18 18 19 clean: … … 40 41 gcc $(CFLAG) $(SOCKETSRC)/Socket.cpp 41 42 43 ClientSocket.o: $(SOCKETSRC)/ClientSocket.h $(SOCKETSRC)/ClientSocket.cpp Socket.o 44 gcc $(CFLAG) $(SOCKETSRC)/ClientSocket.cpp 45 46 RenderClient.o: $(SOCKETSRC)/RenderClient.h $(SOCKETSRC)/RenderClient.cpp ClientSocket.o 47 gcc $(CFLAG) $(SOCKETSRC)/RenderClient.cpp 48 42 49 RenderVertexArray.o: RenderVertexArray.h RenderVertexArray.cpp 43 50 gcc $(CFLAG) RenderVertexArray.cpp 44 51 45 #qdclient: $(OBJ_CLIENT)46 # gcc -g -o qdclient $(OBJ_CLIENT) $(LIB_CLIENT)52 client: $(OBJ_CLIENT) 53 gcc -g -o client $(OBJ_CLIENT) $(LIB_CLIENT) 47 54 48 55 Color.o: Color.cpp 49 56 gcc $(CFLAG) Color.cpp 57 58 Event.o: Event.cpp 59 gcc $(CFLAG) Event.cpp 50 60 51 61 ControlPoint.o: $(TFSRC)/ControlPoint.cpp -
trunk/gui/vizservers/nanovis/ParticleSystem.cpp
r379 r383 102 102 reborn = false; 103 103 104 fprintf(stderr, "init particles\n");104 //fprintf(stderr, "init particles\n"); 105 105 } 106 106 … … 190 190 } 191 191 192 fprintf(stderr, "advect: %d ", psys_frame);192 //fprintf(stderr, "advect: %d ", psys_frame); 193 193 } 194 194 -
trunk/gui/vizservers/nanovis/config.h
r380 r383 15 15 16 16 17 #define NV40 //Uncomment if using 6 series card. By default we assume older card the 5xxx series 17 #define NV40 //Uncomment if using 6 series card. By default we assume older card the 5xxx series 18 //#define XINETD //enable render server 19 #define EVENTLOG //enable event logging -
trunk/gui/vizservers/nanovis/nanovis.cpp
r381 r383 32 32 #include "transfer-function/MainWindow.h" 33 33 34 //render server 35 34 36 float color_table[256][4]; 37 38 #ifdef XINETD 39 FILE* xinetd_log; 40 #endif 41 42 #ifdef EVENTLOG 43 FILE* event_log; 44 //log 45 void init_event_log(); 46 void end_event_log(); 47 #endif 35 48 36 49 int render_window; //the handle of the render window; … … 43 56 float psys_x=0.4, psys_y=0, psys_z=0; 44 57 45 char* screen_buffer = new char[ 4*NPIX*NPIX+1]; //buffer to store data read from the screen58 char* screen_buffer = new char[3*NPIX*NPIX+1]; //buffer to store data read from the screen 46 59 NVISid fbo, color_tex, pattern_tex, mag_tex, final_fbo, final_color_tex, final_depth_rb; //fbo related identifiers 47 60 NVISid vel_fbo, slice_vector_tex; //for projecting 3d vector to 2d vector on a plane … … 87 100 88 101 using namespace std; 102 103 static void set_camera(int x_angle, int y_angle, int z_angle, float dis){ 104 live_rot_x = x_angle; 105 live_rot_y = y_angle; 106 live_rot_z = z_angle; 107 108 live_obj_z = dis; 109 } 110 89 111 90 112 … … 100 122 static int LoadCmd _ANSI_ARGS_((ClientData cdata, Tcl_Interp *interp, int argc, CONST84 char *argv[])); 101 123 124 //Tcl callback functions 125 static int 126 CameraCmd(ClientData cdata, Tcl_Interp *interp, int argc, CONST84 char *argv[]) 127 { 128 129 fprintf(stderr, "camera cmd\n"); 130 int x, y, z; 131 double dis; 132 133 if (argc != 5) { 134 Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], 135 " x_angle y_angle z_angle distance\"", (char*)NULL); 136 return TCL_ERROR; 137 } 138 if (Tcl_GetInt(interp, argv[1], &x) != TCL_OK) { 139 return TCL_ERROR; 140 } 141 if (Tcl_GetInt(interp, argv[2], &y) != TCL_OK) { 142 return TCL_ERROR; 143 } 144 if (Tcl_GetInt(interp, argv[3], &z) != TCL_OK) { 145 return TCL_ERROR; 146 } 147 if (Tcl_GetDouble(interp, argv[4], &dis) != TCL_OK) { 148 return TCL_ERROR; 149 } 150 set_camera(x, y, z, (float)dis); 151 return TCL_OK; 152 } 153 154 155 static int 156 HelloCmd(ClientData cdata, Tcl_Interp *interp, int argc, CONST84 char *argv[]) 157 { 158 //send back 4 bytes as confirmation 159 char ack[4]="ACK"; 160 fprintf(stderr, "wrote %d\n", write(fileno(stdout), ack, 4)); 161 fflush(stdout); 162 return TCL_OK; 163 } 102 164 103 165 //report errors related to CG shaders … … 548 610 549 611 tf[0]->update(data); 612 613 #ifdef EVENTLOG 614 float param[3] = {0,0,0}; 615 Event* tmp = new Event(EVENT_ROTATE, param, 0); 616 tmp->write(event_log); 617 delete tmp; 618 #endif 550 619 } 551 620 … … 579 648 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 580 649 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 650 #ifdef NV40 581 651 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, win_width, win_height, 0, 582 652 GL_RGB, GL_INT, NULL); 653 #else 654 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, win_width, win_height, 0, 655 GL_RGB, GL_INT, NULL); 656 #endif 583 657 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, 584 658 GL_COLOR_ATTACHMENT0_EXT, … … 759 833 psys->initialize((Particle*)data); 760 834 delete[] data; 761 762 fprintf(stderr, "init particles\n");763 835 } 764 836 … … 849 921 interp = Tcl_CreateInterp(); 850 922 Tcl_MakeSafe(interp); 923 924 Tcl_CreateCommand(interp, "camera", CameraCmd, (ClientData)0, (Tcl_CmdDeleteProc*)NULL); 925 //Tcl_CreateCommand(interp, "size", SizeCmd, (ClientData)0, (Tcl_CmdDeleteProc*)NULL); 926 //Tcl_CreateCommand(interp, "clear", ClearCmd, (ClientData)0, (Tcl_CmdDeleteProc*)NULL); 927 //Tcl_CreateCommand(interp, "cut", CutCmd, (ClientData)0, (Tcl_CmdDeleteProc*)NULL); 928 //Tcl_CreateCommand(interp, "outline", OutlineCmd, (ClientData)0, (Tcl_CmdDeleteProc*)NULL); 929 Tcl_CreateCommand(interp, "hello", HelloCmd, (ClientData)0, (Tcl_CmdDeleteProc*)NULL); 930 //Tcl_CreateCommand(interp, "load", LoadCmd, (ClientData)0, (Tcl_CmdDeleteProc*)NULL); 851 931 } 852 932 … … 925 1005 glBindTexture(GL_TEXTURE_2D, 0); 926 1006 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo); 927 glReadPixels(0, 0, win_width, win_height, GL_RGB A, /*GL_COLOR_ATTACHMENT0_EXT*/ GL_UNSIGNED_BYTE, screen_buffer);1007 glReadPixels(0, 0, win_width, win_height, GL_RGB, /*GL_COLOR_ATTACHMENT0_EXT*/ GL_UNSIGNED_BYTE, screen_buffer); 928 1008 assert(glGetError()==0); 929 1009 } 930 1010 1011 void display(); 931 1012 932 1013 void xinetd_listen(){ … … 951 1032 } 952 1033 1034 display(); 953 1035 //read the image 954 1036 read_screen(); 955 writen(fileno(stdout), screen_buffer, 4*win_width*win_height); //unsigned byte956 957 cerr << "server: serve() done" << endl;1037 writen(fileno(stdout), screen_buffer, 3*win_width*win_height); //unsigned byte 1038 1039 cerr << "server: serve() image sent" << endl; 958 1040 } 959 1041 … … 992 1074 993 1075 nanosleep(&ts, 0); 994 //xinetd_listen(); 995 1076 1077 #ifdef XINETD 1078 xinetd_listen(); 1079 #else 996 1080 glutPostRedisplay(); 1081 #endif 997 1082 } 998 1083 … … 1708 1793 1709 1794 //convolve 1710 lic();1795 //lic(); 1711 1796 1712 1797 /* … … 1783 1868 psys->display_vertices(); 1784 1869 perf->disable(); 1785 fprintf(stderr, "particle pixels: %d\n", perf->get_pixel_count());1870 //fprintf(stderr, "particle pixels: %d\n", perf->get_pixel_count()); 1786 1871 perf->reset(); 1787 1872 … … 1797 1882 render_volume(1, 256); 1798 1883 perf->disable(); 1799 fprintf(stderr, "volume pixels: %d\n", perf->get_pixel_count());1884 //fprintf(stderr, "volume pixels: %d\n", perf->get_pixel_count()); 1800 1885 perf->reset(); 1801 1886 … … 1864 1949 } 1865 1950 1951 void end_service(); 1866 1952 1867 1953 void keyboard(unsigned char key, int x, int y){ 1868 1954 1955 bool log = false; 1956 1869 1957 switch (key){ 1870 1958 case 'q': 1959 #ifdef XINETD 1960 end_service(); 1961 #endif 1871 1962 exit(0); 1872 1963 break; … … 1898 1989 case 'w': //zoom out 1899 1990 live_obj_z-=0.1; 1991 log = true; 1900 1992 break; 1901 1993 case 's': //zoom in 1902 1994 live_obj_z+=0.1; 1995 log = true; 1903 1996 break; 1904 1997 case 'a': //left 1905 1998 live_obj_x-=0.1; 1999 log = true; 1906 2000 break; 1907 2001 case 'd': //right 1908 2002 live_obj_x+=0.1; 2003 log = true; 1909 2004 break; 1910 2005 case 'i': … … 1914 2009 break; 1915 2010 } 1916 2011 2012 #ifdef EVENTLOG 2013 if(log){ 2014 float param[3] = {live_obj_x, live_obj_y, live_obj_z}; 2015 Event* tmp = new Event(EVENT_MOVE, param, 0); 2016 tmp->write(event_log); 2017 delete tmp; 2018 } 2019 #endif 1917 2020 } 1918 2021 … … 1952 2055 } 1953 2056 2057 #ifdef EVENTLOG 2058 float param[3] = {live_rot_x, live_rot_y, live_rot_z}; 2059 Event* tmp = new Event(EVENT_ROTATE, param, 0); 2060 tmp->write(event_log); 2061 delete tmp; 2062 #endif 2063 1954 2064 glutPostRedisplay(); 1955 2065 } 1956 2066 2067 #ifdef XINETD 2068 void init_service(){ 2069 //open log and map stderr to log file 2070 xinetd_log = fopen("log.txt", "w"); 2071 close(2); 2072 dup2(fileno(xinetd_log), 2); 2073 2074 //flush junk 2075 fflush(stdout); 2076 fflush(stderr); 2077 } 2078 2079 void end_service(){ 2080 //close log file 2081 fclose(xinetd_log); 2082 } 2083 #endif 2084 2085 #ifdef EVENTLOG 2086 void init_event_log(){ 2087 event_log = fopen("event.txt", "w"); 2088 assert(event_log!=0); 2089 } 2090 2091 void end_event_log(){ 2092 fclose(event_log); 2093 } 2094 #endif 1957 2095 1958 2096 /*----------------------------------------------------*/ … … 1978 2116 1979 2117 initGL(); 2118 #ifdef XINETD 2119 init_service(); 2120 #endif 1980 2121 initTcl(); 1981 2122 1982 //FILE* log_file = fopen("log.txt", "w"); 1983 //close(2);1984 //dup2(fileno(log_file), 2); 1985 2123 #ifdef EVENTLOG 2124 init_event_log(); 2125 #endif 2126 //event loop 1986 2127 glutMainLoop(); 2128 #ifdef EVENTLOG 2129 end_event_log(); 2130 #endif 2131 2132 #ifdef XINETD 2133 end_service(); 2134 #endif 2135 1987 2136 return 0; 1988 2137 } -
trunk/gui/vizservers/nanovis/nanovis.h
r379 r383 40 40 #include "ParticleSystem.h" 41 41 #include "PerfQuery.h" 42 #include "Event.h" 42 43 43 44 #include "config.h" -
trunk/gui/vizservers/nanovis/socket/RenderClient.cpp
r226 r383 30 30 RenderClient::RenderClient(std::string& remote_host, int port_num){ 31 31 //screen_size = sizeof(float)*4*512*512; //float 32 screen_size = 4*width*height; //unsigned byte32 screen_size = 3*width*height; //unsigned byte 33 33 screen_buffer = new char[screen_size]; 34 34 … … 116 116 { 117 117 delete[] client->screen_buffer; 118 client->screen_size = 4*_width*_height;118 client->screen_size = 3*_width*_height; 119 119 client->screen_buffer = new char[client->screen_size]; 120 120 … … 174 174 //glDrawPixels(width, height, GL_RGBA, GL_FLOAT, client->screen_buffer); 175 175 //bzero(client->screen_buffer, client->screen_size); 176 glDrawPixels(width, height, GL_RGB A, GL_UNSIGNED_BYTE, client->screen_buffer);176 glDrawPixels(width, height, GL_RGB, GL_UNSIGNED_BYTE, client->screen_buffer); 177 177 glFlush(); 178 178 glutSwapBuffers(); … … 469 469 470 470 471 void init_client( ){471 void init_client(char* host, char* port){ 472 472 //std::string host = "localhost"; 473 473 //hostname -i 474 std::string host = "128.46.137.192"; 475 client = new RenderClient(host, 30000); 474 //std::string host = "128.46.137.192"; 475 476 std::string hostname = host; 477 client = new RenderClient(hostname, atoi(port)); 476 478 477 479 //point stdin stdout to socket … … 483 485 */ 484 486 485 486 std::stringstream stream; 487 stream << "hello"; 488 std::string msg1; 489 stream >> msg1; 487 std::string msg1 = "hello"; 490 488 std::string msg2 = " "; 491 489 … … 496 494 client->receive(msg2); 497 495 498 //cerr << "client: msg received - " << msg2 << endl;496 cerr << "client: msg received - " << msg2 << endl; 499 497 cerr << "connection to server established" << endl; 500 498 } … … 541 539 } 542 540 541 void help(const char *argv0) 542 { 543 fprintf(stderr, 544 "Syntax: %s addr:port load\n", 545 argv0); 546 exit(1); 547 } 548 543 549 /* Program entry point */ 544 550 int main(int argc, char *argv[]) 545 551 { 552 //parameters: hostip and port 553 if(argc!=3) help(argv[0]); 554 546 555 width =512; height=512; 547 556 548 init_client( );557 init_client(argv[1], argv[2]); 549 558 550 559 glutInit(&argc, argv); -
trunk/gui/vizservers/nanovis/transfer-function/ColorGradientGLUTWindow.cpp
r379 r383 83 83 84 84 if(mapOutput==0) 85 printf("NULL");85 fprintf(stderr, "NULL"); 86 86 87 87 //initialize mapOutput … … 148 148 149 149 if(map == NULL){ 150 printf("ColorGradient Window : forgot to bind the colorMap\n");150 fprintf(stderr, "ColorGradient Window : forgot to bind the colorMap\n"); 151 151 return; 152 152 } … … 617 617 for(i=0;i<numOfOutput;i++){ 618 618 //printf("(%g,%g,%g) ", mapOutput[3*i], mapOutput[3*i+1], mapOutput[3*i+2]); 619 printf("(%g,%g,%g) ", color_table[i][0], color_table[i][1], color_table[i][2]);620 } 621 } 622 623 619 fprintf(stderr, "(%g,%g,%g) ", color_table[i][0], color_table[i][1], color_table[i][2]); 620 } 621 } 622 623 -
trunk/gui/vizservers/nanovis/transfer-function/MainWindow.cpp
r379 r383 99 99 100 100 void MainTransferFunctionWindow::mainMouse(int button, int state, int x, int y){ 101 printf("main mouse\n");101 fprintf(stderr, "main mouse\n"); 102 102 //find out what area received the event 103 103 if (y<=main_winy-tf_winy){ … … 242 242 243 243 if (fileName==0 || strlen(fileName)<1){ 244 printf("Error: file name not supplied.\n");244 fprintf(stderr, "Error: file name not supplied.\n"); 245 245 return; 246 246 } … … 249 249 250 250 if(!fp){ 251 printf("Error: open file.\n");251 fprintf(stderr, "Error: open file.\n"); 252 252 return; 253 253 } 254 254 255 printf("File \"%s\" opened.\n", fileName);255 fprintf(stderr, "File \"%s\" opened.\n", fileName); 256 256 257 257 char buf[300]; //buffer to store one line from file -
trunk/gui/vizservers/nanovis/transfer-function/TransferFunctionGLUTWindow.cpp
r379 r383 112 112 tf_gvSelectedPoint = new ControlPoint(0,0); 113 113 114 printf("Transferfunction Init...\n");114 fprintf(stderr, "Transferfunction Init...\n"); 115 115 } 116 116 … … 598 598 for(i=0;i<numOfOutput;i++){ 599 599 //printf("%f, ",output[i]); 600 printf("%f, ",color_table[i][3]);601 } 602 printf("\n");600 fprintf(stderr, "%f, ",color_table[i][3]); 601 } 602 fprintf(stderr, "\n"); 603 603 } 604 604 … … 803 803 void TransferFunctionGLUTWindow::printPoints(){ 804 804 ControlPoint* cur=tf_pointList; 805 printf("********************\n");806 printf("Total points %d \n", tf_numOfPoints);805 fprintf(stderr, "********************\n"); 806 fprintf(stderr, "Total points %d \n", tf_numOfPoints); 807 807 808 808 if (tf_numOfPoints==0) … … 810 810 811 811 while (cur->next!=0){ 812 printf("(%g,%g)\n", cur->x, cur->y);812 fprintf(stderr, "(%g,%g)\n", cur->x, cur->y); 813 813 cur=cur->next; 814 814 } 815 printf("(%g,%g)\n", cur->x, cur->y);816 printf("********************\n");815 fprintf(stderr, "(%g,%g)\n", cur->x, cur->y); 816 fprintf(stderr, "********************\n"); 817 817 } 818 818 … … 926 926 for(int j=0; j<4; j++){ 927 927 for (i=0; i<Hist[j].range; i++){ 928 printf("%ld\t", Hist[j].count[i]);929 } 930 printf("\n\n");928 fprintf(stderr, "%ld\t", Hist[j].count[i]); 929 } 930 fprintf(stderr, "\n\n"); 931 931 } 932 932
Note: See TracChangeset
for help on using the changeset viewer.