Changeset 2996 for trunk/src/opengl/glu
- Timestamp:
- Mar 4, 2000, 8:10:18 PM (25 years ago)
- Location:
- trunk/src/opengl/glu
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/opengl/glu/glu32.def
r2689 r2996 1 ;/* $Id: glu32.def,v 1.1 2000-02-09 08:50:55 jeroen Exp $ */ 2 LIBRARY GLU32 INITINSTANCE 1 ;/* $Id: glu32.def,v 1.2 2000-03-04 19:10:12 jeroen Exp $ */ 2 LIBRARY GLU32 INITINSTANCE TERMINSTANCE 3 DESCRIPTION 'OpenGL Utility DLL for Odin OpenGL' 3 4 4 5 DATA MULTIPLE NONSHARED -
trunk/src/opengl/glu/initterm.cpp
r2754 r2996 1 /* $Id: initterm.cpp,v 1. 6 2000-02-11 12:36:39 birdExp $ */1 /* $Id: initterm.cpp,v 1.7 2000-03-04 19:10:12 jeroen Exp $ */ 2 2 3 3 /* … … 31 31 #include <stdio.h> 32 32 #include <string.h> 33 #include < odin.h>33 #include <misc.h> 34 34 #include <win32type.h> 35 35 #include <winconst.h> 36 36 #include <odinlx.h> 37 #include <misc.h> /* PLF Wed 98-03-18 23:18:15 */38 37 39 38 extern "C" { … … 52 51 { 53 52 case DLL_PROCESS_ATTACH: 54 53 return TRUE; 55 54 56 55 case DLL_THREAD_ATTACH: 57 56 case DLL_THREAD_DETACH: 58 57 return TRUE; 59 58 60 59 case DLL_PROCESS_DETACH: 61 62 60 _ctordtorTerm(); 61 return TRUE; 63 62 } 64 63 return FALSE; … … 74 73 /* calling this function. */ 75 74 /****************************************************************************/ 76 unsigned long SYSTEM_DLL_InitTerm(unsigned long hModule, unsigned long75 unsigned long _System _DLL_InitTerm(unsigned long hModule, unsigned long 77 76 ulFlag) 78 77 { 79 size_t i;80 APIRET rc;81 82 78 /*-------------------------------------------------------------------------*/ 83 79 /* If ulFlag is zero then the DLL is being loaded so initialization should */ … … 90 86 _ctordtorInit(); 91 87 92 CheckVersionFromHMOD(PE2LX_VERSION, hModule);/* PLF Wed 98-03-18 05:28:48*/93 94 88 /*******************************************************************/ 95 89 /* A DosExitList routine must be used to clean up if runtime calls */ … … 99 93 if(RegisterLxDll(hModule, LibMain, (PVOID)&_Resource_PEResTab) == FALSE) 100 94 return 0UL; 95 96 CheckVersionFromHMOD(PE2LX_VERSION, hModule);/* PLF Wed 98-03-18 05:28:48*/ 101 97 102 98 break; -
trunk/src/opengl/glu/nurbs/interface/glsurfeval.cpp
r2689 r2996 1 /* $Id: glsurfeval.cpp,v 1. 1 2000-02-09 08:49:02jeroen Exp $ */1 /* $Id: glsurfeval.cpp,v 1.2 2000-03-04 19:10:13 jeroen Exp $ */ 2 2 /* 3 3 ** License Applicability. Except to the extent portions of this file are … … 37 37 * glsurfeval.c++ 38 38 * 39 * $Date: 2000-0 2-09 08:49:02 $ $Revision: 1.1$40 * $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/opengl/glu/nurbs/interface/glsurfeval.cpp,v 1. 1 2000-02-09 08:49:02jeroen Exp $39 * $Date: 2000-03-04 19:10:13 $ $Revision: 1.2 $ 40 * $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/opengl/glu/nurbs/interface/glsurfeval.cpp,v 1.2 2000-03-04 19:10:13 jeroen Exp $ 41 41 */ 42 42 … … 82 82 extern "C" { void evalVStripExt(int n_left, REAL u_left, REAL* left_val, 83 83 int n_right, REAL u_right, REAL* right_val); 84 84 } 85 85 #endif 86 86 … … 107 107 108 108 for (i=0; i<VERTEX_CACHE_SIZE; i++) { 109 109 vertexCache[i] = new StoredVertex; 110 110 } 111 111 tmeshing = 0; … … 124 124 global_vorder_BV = 0; 125 125 global_baseData = NULL; 126 126 127 127 global_bpm = NULL; 128 128 output_triangles = 0; //don't output triangles by default … … 202 202 #ifdef USE_INTERNAL_EVAL 203 203 inMapGrid2f((int) nu, (REAL) u0, (REAL) u1, (int) nv, 204 204 (REAL) v0, (REAL) v1); 205 205 #else 206 206 207 if(output_triangles) 207 if(output_triangles) 208 208 { 209 209 global_grid_u0 = u0; … … 216 216 else 217 217 glMapGrid2d((GLint) nu, (GLdouble) u0, (GLdouble) u1, (GLint) nv, 218 218 (GLdouble) v0, (GLdouble) v1); 219 219 220 220 #endif … … 229 229 default: 230 230 case N_MESHFILL: 231 232 233 231 232 glPolygonMode((GLenum) GL_FRONT_AND_BACK, (GLenum) GL_FILL); 233 break; 234 234 case N_MESHLINE: 235 236 235 glPolygonMode((GLenum) GL_FRONT_AND_BACK, (GLenum) GL_LINE); 236 break; 237 237 case N_MESHPOINT: 238 239 238 glPolygonMode((GLenum) GL_FRONT_AND_BACK, (GLenum) GL_POINT); 239 break; 240 240 } 241 241 } … … 340 340 { 341 341 if(output_triangles) 342 342 bezierPatchMeshEndStrip(global_bpm); 343 343 else 344 344 glEnd(); … … 350 350 #ifdef USE_INTERNAL_EVAL 351 351 inEvalUStrip(n_upper, v_upper, upper_val, 352 352 n_lower, v_lower, lower_val); 353 353 #else 354 354 355 355 #ifdef FOR_CHRIS 356 356 evalUStripExt(n_upper, v_upper, upper_val, 357 357 n_lower, v_lower, lower_val); 358 358 return; 359 359 … … 402 402 { 403 403 bgntfan(); 404 405 // 404 coord2f(leftMostV[0], leftMostV[1]); 405 // glNormal3fv(leftMostNormal); 406 406 // glVertex3fv(leftMostXYZ); 407 407 408 408 while(j<n_lower){ 409 410 // 411 // 412 409 coord2f(lower_val[j], v_lower); 410 // glNormal3fv(lowerNormal[j]); 411 // glVertex3fv(lowerXYZ[j]); 412 j++; 413 413 414 414 } … … 422 422 { 423 423 bgntfan(); 424 425 // 426 // 427 424 coord2f(leftMostV[0], leftMostV[1]); 425 // glNormal3fv(leftMostNormal); 426 // glVertex3fv(leftMostXYZ); 427 428 428 for(k=n_upper-1; k>=i; k--) /*reverse order for two-side lighting*/ 429 430 431 // 432 // 433 429 { 430 coord2f(upper_val[k], v_upper); 431 // glNormal3fv(upperNormal[k]); 432 // glVertex3fv(upperXYZ[k]); 433 } 434 434 435 435 endtfan(); … … 441 441 if(upper_val[i] <= lower_val[j]) 442 442 { 443 444 445 // 446 // 443 bgntfan(); 444 coord2f(lower_val[j], v_lower); 445 // glNormal3fv(lowerNormal[j]); 446 // glVertex3fv(lowerXYZ[j]); 447 447 448 448 /*find the last k>=i such that … … 463 463 for(l=k; l>=i; l--)/*the reverse is for two-side lighting*/ 464 464 { 465 466 // 467 // 465 coord2f(upper_val[l], v_upper); 466 // glNormal3fv(upperNormal[l]); 467 // glVertex3fv(upperXYZ[l]); 468 468 469 469 } 470 471 // 472 // 470 coord2f(leftMostV[0], leftMostV[1]); 471 // glNormal3fv(leftMostNormal); 472 // glVertex3fv(leftMostXYZ); 473 473 474 474 endtfan(); … … 478 478 i = k+1; 479 479 480 481 482 // 483 // 480 leftMostV[0] = upper_val[k]; 481 leftMostV[1] = v_upper; 482 // leftMostNormal = upperNormal[k]; 483 // leftMostXYZ = upperXYZ[k]; 484 484 } 485 485 else /*upperVerts[i][0] > lowerVerts[j][0]*/ 486 486 { 487 488 489 // 490 // 491 492 487 bgntfan(); 488 coord2f(upper_val[i], v_upper); 489 // glNormal3fv(upperNormal[i]); 490 // glVertex3fv(upperXYZ[i]); 491 492 coord2f(leftMostV[0], leftMostV[1]); 493 493 // glNormal3fv(leftMostNormal); 494 // 495 494 // glVertex3fv(leftMostXYZ); 495 496 496 497 497 /*find the last k>=j such that … … 503 503 if(lower_val[k] >= upper_val[i]) 504 504 break; 505 506 // 507 // 505 coord2f(lower_val[k], v_lower); 506 // glNormal3fv(lowerNormal[k]); 507 // glVertex3fv(lowerXYZ[k]); 508 508 509 509 k++; … … 514 514 */ 515 515 j=k; 516 517 518 519 // 520 // 516 leftMostV[0] = lower_val[j-1]; 517 leftMostV[1] = v_lower; 518 519 // leftMostNormal = lowerNormal[j-1]; 520 // leftMostXYZ = lowerXYZ[j-1]; 521 521 } 522 522 } … … 536 536 { 537 537 #ifdef USE_INTERNAL_EVAL 538 539 538 inEvalVStrip(n_left, u_left, left_val, 539 n_right, u_right, right_val); 540 540 #else 541 541 542 542 #ifdef FOR_CHRIS 543 544 545 543 evalVStripExt(n_left, u_left, left_val, 544 n_right, u_right, right_val); 545 return; 546 546 547 547 #endif … … 588 588 { 589 589 bgntfan(); 590 590 coord2f(botMostV[0], botMostV[1]); 591 591 while(j<n_right){ 592 593 // 594 // 595 592 coord2f(u_right, right_val[j]); 593 // glNormal3fv(rightNormal[j]); 594 // glVertex3fv(rightXYZ[j]); 595 j++; 596 596 597 597 } … … 606 606 bgntfan(); 607 607 coord2f(botMostV[0], botMostV[1]); 608 // 609 // 610 608 // glNormal3fv(botMostNormal); 609 // glVertex3fv(botMostXYZ); 610 611 611 for(k=n_left-1; k>=i; k--) /*reverse order for two-side lighting*/ 612 613 614 // 615 // 616 612 { 613 coord2f(u_left, left_val[k]); 614 // glNormal3fv(leftNormal[k]); 615 // glVertex3fv(leftXYZ[k]); 616 } 617 617 618 618 endtfan(); … … 624 624 if(left_val[i] <= right_val[j]) 625 625 { 626 627 628 // 629 // 626 bgntfan(); 627 coord2f(u_right, right_val[j]); 628 // glNormal3fv(rightNormal[j]); 629 // glVertex3fv(rightXYZ[j]); 630 630 631 631 /*find the last k>=i such that … … 646 646 for(l=k; l>=i; l--)/*the reverse is for two-side lighting*/ 647 647 { 648 649 // 650 // 648 coord2f(u_left, left_val[l]); 649 // glNormal3fv(leftNormal[l]); 650 // glVertex3fv(leftXYZ[l]); 651 651 652 652 } 653 654 // 655 // 653 coord2f(botMostV[0], botMostV[1]); 654 // glNormal3fv(botMostNormal); 655 // glVertex3fv(botMostXYZ); 656 656 657 657 endtfan(); … … 661 661 i = k+1; 662 662 663 664 665 // 666 // 663 botMostV[0] = u_left; 664 botMostV[1] = left_val[k]; 665 // botMostNormal = leftNormal[k]; 666 // botMostXYZ = leftXYZ[k]; 667 667 } 668 668 else /*left_val[i] > right_val[j])*/ 669 669 { 670 671 672 // 673 // 674 675 670 bgntfan(); 671 coord2f(u_left, left_val[i]); 672 // glNormal3fv(leftNormal[i]); 673 // glVertex3fv(leftXYZ[i]); 674 675 coord2f(botMostV[0], botMostV[1]); 676 676 // glNormal3fv(botMostNormal); 677 // 678 677 // glVertex3fv(botMostXYZ); 678 679 679 680 680 /*find the last k>=j such that … … 686 686 if(right_val[k] >= left_val[i]) 687 687 break; 688 689 // 690 // 688 coord2f(u_right, right_val[k]); 689 // glNormal3fv(rightNormal[k]); 690 // glVertex3fv(rightXYZ[k]); 691 691 692 692 k++; … … 697 697 */ 698 698 j=k; 699 700 701 702 // 703 // 699 botMostV[0] = u_right; 700 botMostV[1] = right_val[j-1]; 701 702 // botMostNormal = rightNormal[j-1]; 703 // botMostXYZ = rightXYZ[j-1]; 704 704 } 705 705 } … … 723 723 724 724 #ifdef STATISTICS 725 725 STAT_num_of_quad_strips++; 726 726 #endif 727 727 } … … 750 750 */ 751 751 if(global_bpm != NULL) { 752 753 752 bezierPatchMeshListDelete(global_bpm); 753 global_bpm = NULL; 754 754 } 755 755 756 756 757 757 /* 758 759 760 758 auto_normal_flag = 1; //always output normal in callback mode. 759 //we could have used the following code, 760 //but Inspector doesn't have gl context 761 761 //before it calls tessellator. 762 763 762 //this way is temporary. 763 */ 764 764 //NEWCALLBACK 765 765 //if one of the two normal callback functions are set, 766 766 //then set 767 767 if(normalCallBackN != NULL || 768 769 768 normalCallBackData != NULL) 769 auto_normal_flag = 1; 770 770 else 771 771 auto_normal_flag = 0; 772 772 773 773 //initialize so that no maps initially … … 779 779 /* 780 780 if(glIsEnabled(GL_AUTO_NORMAL) == GL_TRUE) 781 781 auto_normal_flag = 1; 782 782 else if (callback_auto_normal == 1) 783 783 auto_normal_flag = 1; 784 784 else 785 786 785 auto_normal_flag = 0; 786 */ 787 787 788 788 //NEWCALLBACK: no need to worry about gl states when gling clalback … … 793 793 794 794 /*to avoid side effect, we restor the opengl state for GL_POLYGON_MODE 795 */ 795 */ 796 796 glGetIntegerv(GL_POLYGON_MODE, gl_polygon_mode); 797 797 } … … 877 877 OpenGLSurfaceEvaluator::map2f( 878 878 long _type, 879 REAL _ulower, /* u lower domain coord*/880 REAL _uupper, /* u upper domain coord*/881 long _ustride, /* interpoint distance*/882 long _uorder, /* parametric order*/883 REAL _vlower, /* v lower domain coord*/884 REAL _vupper, /* v upper domain coord*/885 long _vstride, /* interpoint distance*/886 long _vorder, /* parametric order*/887 REAL *pts) /* control points*/879 REAL _ulower, /* u lower domain coord */ 880 REAL _uupper, /* u upper domain coord */ 881 long _ustride, /* interpoint distance */ 882 long _uorder, /* parametric order */ 883 REAL _vlower, /* v lower domain coord */ 884 REAL _vupper, /* v upper domain coord */ 885 long _vstride, /* interpoint distance */ 886 long _vorder, /* parametric order */ 887 REAL *pts) /* control points */ 888 888 { 889 889 #ifdef USE_INTERNAL_EVAL 890 890 inMap2f((int) _type, (REAL) _ulower, (REAL) _uupper, 891 892 893 891 (int) _ustride, (int) _uorder, (REAL) _vlower, 892 (REAL) _vupper, (int) _vstride, (int) _vorder, 893 (REAL *) pts); 894 894 #else 895 895 … … 899 899 { 900 900 if(global_bpm == NULL) 901 901 global_bpm = bezierPatchMeshMake2(10,10); 902 902 if( 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 903 (global_bpm->bpatch == NULL && 904 (_type == GL_MAP2_VERTEX_3 || _type == GL_MAP2_VERTEX_4)) 905 || 906 (global_bpm->bpatch_normal == NULL && 907 (_type == GL_MAP2_NORMAL)) 908 || 909 (global_bpm->bpatch_color == NULL && 910 (_type == GL_MAP2_INDEX || _type == GL_MAP2_COLOR_4)) 911 || 912 (global_bpm->bpatch_texcoord == NULL && 913 (_type == GL_MAP2_TEXTURE_COORD_1 || 914 _type == GL_MAP2_TEXTURE_COORD_2 || 915 _type == GL_MAP2_TEXTURE_COORD_3 || 916 _type == GL_MAP2_TEXTURE_COORD_4 ) 917 )) 918 { 919 bezierPatchMeshPutPatch(global_bpm, (int) _type, _ulower, _uupper,(int) _ustride,(int) _uorder,_vlower, _vupper, (int) _vstride, (int) _vorder, pts); 920 } 921 921 else /*new surface patch (with multiple maps) starts*/ 922 923 924 925 926 927 928 929 930 931 932 922 { 923 bezierPatchMesh *temp = bezierPatchMeshMake2(10,10); 924 bezierPatchMeshPutPatch(temp, (int) _type, _ulower, _uupper,(int) _ustride,(int) _uorder,_vlower, _vupper, (int) _vstride, (int) _vorder, pts); 925 global_bpm = bezierPatchMeshListInsert(global_bpm, temp); 926 927 /* 928 global_bpm = bezierPatchMeshListInsert(global_bpm, 929 bezierPatchMeshMake( 930 (int) _type, _ulower, _uupper,(int) _ustride, (int) _uorder, _vlower, _vupper, (int) _vstride, (int) _vorder, pts, 10, 10)); 931 */ 932 } 933 933 } 934 934 else /*not output triangles*/ 935 935 { 936 936 glMap2f((GLenum) _type, (GLfloat) _ulower, (GLfloat) _uupper, 937 938 939 937 (GLint) _ustride, (GLint) _uorder, (GLfloat) _vlower, 938 (GLfloat) _vupper, (GLint) _vstride, (GLint) _vorder, 939 (const GLfloat *) pts); 940 940 } 941 941 … … 990 990 bgnqstrip(); 991 991 for(j=vmax; j>=vmin; j--){ 992 993 994 995 992 REAL v1 = (j == global_grid_nv)? global_grid_v1: (global_grid_v0 +j*dv); 993 994 coord2f(u1, v1); 995 coord2f(u2, v1); 996 996 } 997 997 endqstrip(); … … 1006 1006 bgnqstrip(); 1007 1007 for(j=umax; j>=umin; j--){ 1008 REAL u1 = (j == global_grid_nu)? global_grid_u1: (global_grid_u0 +j*du); 1009 1010 1008 REAL u1 = (j == global_grid_nu)? global_grid_u1: (global_grid_u0 +j*du); 1009 coord2f(u1, v2); 1010 coord2f(u1, v1); 1011 1011 } 1012 1012 endqstrip(); … … 1020 1020 default: 1021 1021 case N_MESHFILL: 1022 1023 1024 1022 glEvalMesh2((GLenum) GL_FILL, (GLint) umin, (GLint) umax, 1023 (GLint) vmin, (GLint) vmax); 1024 break; 1025 1025 case N_MESHLINE: 1026 1027 1028 1026 glEvalMesh2((GLenum) GL_LINE, (GLint) umin, (GLint) umax, 1027 (GLint) vmin, (GLint) vmax); 1028 break; 1029 1029 case N_MESHPOINT: 1030 1031 1032 1030 glEvalMesh2((GLenum) GL_POINT, (GLint) umin, (GLint) umax, 1031 (GLint) vmin, (GLint) vmax); 1032 break; 1033 1033 } 1034 1034 } … … 1037 1037 1038 1038 #ifdef STATISTICS 1039 1039 STAT_num_of_quad_strips += (umax-umin)*(vmax-vmin); 1040 1040 #endif 1041 1041 } … … 1146 1146 if (tmeshing) { 1147 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1148 if (vcount == 2) { 1149 vertexCache[0]->invoke(this); 1150 vertexCache[1]->invoke(this); 1151 point2i( u, v); 1152 1153 } else { 1154 vcount++; 1155 } 1156 1157 vertexCache[which]->saveEvalPoint(u, v); 1158 which = 1 - which; 1159 1159 } else { 1160 1160 point2i( u, v); 1161 1161 } 1162 1162 #endif … … 1172 1172 1173 1173 1174 1175 1176 1174 if (vcount == 2) { 1175 vertexCache[0]->invoke(this); 1176 vertexCache[1]->invoke(this); 1177 1177 coord2f(u,v); 1178 1178 1179 1180 1181 1182 1183 1184 1179 } else { 1180 vcount++; 1181 } 1182 1183 vertexCache[which]->saveEvalCoord(u, v); 1184 which = 1 - which; 1185 1185 } else { 1186 1186 1187 1187 coord2f( u, v); 1188 1188 } 1189 1189 #endif
Note:
See TracChangeset
for help on using the changeset viewer.