Changeset 3597 for trunk/src/opengl/mesa/tritemp.h
- Timestamp:
- May 23, 2000, 10:35:01 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/opengl/mesa/tritemp.h
r2938 r3597 1 /* $Id: tritemp.h,v 1. 1 2000-02-29 00:48:40 sandervlExp $ */1 /* $Id: tritemp.h,v 1.2 2000-05-23 20:34:58 jeroen Exp $ */ 2 2 3 3 /* 4 4 * Mesa 3-D graphics library 5 * Version: 3. 15 * Version: 3.3 6 6 * 7 7 * Copyright (C) 1999 Brian Paul All Rights Reserved. … … 51 51 * PIXEL_ADDRESS(X,Y) - returns the address of pixel at (X,Y) where 52 52 * Y==0 at bottom of screen and increases upward. 53 * 54 * Similarly, for direct depth buffer access, this type is used for depth 55 * buffer addressing: 56 * DEPTH_TYPE - either GLushort or GLuint 53 57 * 54 58 * Optionally, one may provide one-time setup code per triangle: … … 84 88 } EdgeT; 85 89 86 struct vertex_buffer *VB = ctx->VB; 90 #ifdef INTERP_Z 91 const GLint depthBits = ctx->Visual->DepthBits; 92 const GLint fixedToDepthShift = depthBits <= 16 ? FIXED_SHIFT : 0; 93 const GLfloat maxDepth = ctx->Visual->DepthMaxF; 94 #define FixedToDepth(F) ((F) >> fixedToDepthShift) 95 #endif 96 const struct vertex_buffer *VB = ctx->VB; 87 97 EdgeT eMaj, eTop, eBot; 88 98 GLfloat oneOverArea; … … 135 145 /* compute oneOverArea */ 136 146 { 137 GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;147 const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy; 138 148 139 149 /* Do backface culling */ 140 if ( 141 area * bf < 0 || 142 area * area < .0025 143 ) 150 if (area * bf < 0 || area * area < .0025) 144 151 return; 145 146 152 147 153 oneOverArea = 1.0F / area; … … 227 233 { 228 234 GLint ltor; /* true if scanning left-to-right */ 229 #if INTERP_Z235 #ifdef INTERP_Z 230 236 GLfloat dzdx, dzdy; GLfixed fdzdx; 231 237 #endif 232 #if INTERP_RGB238 #ifdef INTERP_RGB 233 239 GLfloat drdx, drdy; GLfixed fdrdx; 234 240 GLfloat dgdx, dgdy; GLfixed fdgdx; 235 241 GLfloat dbdx, dbdy; GLfixed fdbdx; 236 242 #endif 237 #if INTERP_SPEC243 #ifdef INTERP_SPEC 238 244 GLfloat dsrdx, dsrdy; GLfixed fdsrdx; 239 245 GLfloat dsgdx, dsgdy; GLfixed fdsgdx; 240 246 GLfloat dsbdx, dsbdy; GLfixed fdsbdx; 241 247 #endif 242 #if INTERP_ALPHA248 #ifdef INTERP_ALPHA 243 249 GLfloat dadx, dady; GLfixed fdadx; 244 250 #endif 245 #if INTERP_INDEX251 #ifdef INTERP_INDEX 246 252 GLfloat didx, didy; GLfixed fdidx; 247 253 #endif 248 #if INTERP_INT_ST254 #ifdef INTERP_INT_ST 249 255 GLfloat dsdx, dsdy; GLfixed fdsdx; 250 256 GLfloat dtdx, dtdy; GLfixed fdtdx; 251 257 #endif 252 #if INTERP_STUV258 #ifdef INTERP_STUV 253 259 GLfloat dsdx, dsdy; 254 260 GLfloat dtdx, dtdy; … … 256 262 GLfloat dvdx, dvdy; 257 263 #endif 258 #if INTERP_STUV1264 #ifdef INTERP_STUV1 259 265 GLfloat ds1dx, ds1dy; 260 266 GLfloat dt1dx, dt1dy; … … 273 279 274 280 /* compute d?/dx and d?/dy derivatives */ 275 #if INTERP_Z281 #ifdef INTERP_Z 276 282 { 277 283 GLfloat eMaj_dz, eBot_dz; … … 279 285 eBot_dz = VB->Win.data[vMid][2] - VB->Win.data[vMin][2]; 280 286 dzdx = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz); 281 if (dzdx >DEPTH_SCALE || dzdx<-DEPTH_SCALE) {287 if (dzdx > maxDepth || dzdx < -maxDepth) { 282 288 /* probably a sliver triangle */ 283 289 dzdx = 0.0; … … 287 293 dzdy = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx); 288 294 } 289 #if DEPTH_BITS==16 290 fdzdx = SignedFloatToFixed(dzdx); 291 #else 292 fdzdx = (GLint) dzdx; 293 #endif 294 } 295 #endif 296 #if INTERP_RGB 295 if (depthBits <= 16) 296 fdzdx = SignedFloatToFixed(dzdx); 297 else 298 fdzdx = (GLint) dzdx; 299 } 300 #endif 301 #ifdef INTERP_RGB 297 302 { 298 303 GLfloat eMaj_dr, eBot_dr; … … 320 325 } 321 326 #endif 322 #if INTERP_SPEC327 #ifdef INTERP_SPEC 323 328 { 324 329 GLfloat eMaj_dsr, eBot_dsr; … … 346 351 } 347 352 #endif 348 #if INTERP_ALPHA353 #ifdef INTERP_ALPHA 349 354 { 350 355 GLfloat eMaj_da, eBot_da; … … 356 361 } 357 362 #endif 358 #if INTERP_INDEX363 #ifdef INTERP_INDEX 359 364 { 360 365 GLfloat eMaj_di, eBot_di; … … 366 371 } 367 372 #endif 368 #if INTERP_INT_ST373 #ifdef INTERP_INT_ST 369 374 { 370 375 GLfloat eMaj_ds, eBot_ds; … … 390 395 391 396 #endif 392 #if INTERP_STUV397 #ifdef INTERP_STUV 393 398 { 394 399 GLfloat wMax = VB->Win.data[vMax][3]; … … 442 447 } 443 448 #endif 444 #if INTERP_STUV1449 #ifdef INTERP_STUV1 445 450 { 446 451 GLfloat wMax = VB->Win.data[vMax][3]; … … 461 466 eBot_dt = VB->TexCoordPtr[1]->data[vMid][1]*wMid - VB->TexCoordPtr[1]->data[vMin][1]*wMin; 462 467 dt1dx = oneOverArea * (eMaj_dt * eBot.dy - eMaj.dy * eBot_dt); 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 468 dt1dy = oneOverArea * (eMaj.dx * eBot_dt - eMaj_dt * eBot.dx); 469 } 470 else 471 { 472 dt1dx = 0; 473 dt1dy = 0; 474 } 475 476 if (VB->TexCoordPtr[1]->size > 2) 477 { 478 eMaj_du = VB->TexCoordPtr[1]->data[vMax][2]*wMax - VB->TexCoordPtr[1]->data[vMin][2]*wMin; 479 eBot_du = VB->TexCoordPtr[1]->data[vMid][2]*wMid - VB->TexCoordPtr[1]->data[vMin][2]*wMin; 480 du1dx = oneOverArea * (eMaj_du * eBot.dy - eMaj.dy * eBot_du); 481 du1dy = oneOverArea * (eMaj.dx * eBot_du - eMaj_du * eBot.dx); 482 } 483 else 484 { 485 du1dx = 0; 486 du1dy = 0; 487 } 488 489 if (VB->TexCoordPtr[1]->size > 3) 490 { 491 eMaj_dv = VB->TexCoordPtr[1]->data[vMax][3]*wMax - VB->TexCoordPtr[1]->data[vMin][3]*wMin; 492 eBot_dv = VB->TexCoordPtr[1]->data[vMid][3]*wMid - VB->TexCoordPtr[1]->data[vMin][3]*wMin; 493 dv1dx = oneOverArea * (eMaj_dv * eBot.dy - eMaj.dy * eBot_dv); 494 dv1dy = oneOverArea * (eMaj.dx * eBot_dv - eMaj_dv * eBot.dx); 495 } 496 else 497 { 498 eMaj_dv = wMax - wMin; 499 eBot_dv = wMid - wMin; 500 dv1dx = oneOverArea * (eMaj_dv * eBot.dy - eMaj.dy * eBot_dv); 501 dv1dy = oneOverArea * (eMaj.dx * eBot_dv - eMaj_dv * eBot.dx); 502 } 498 503 } 499 504 #endif … … 560 565 int dPRowOuter, dPRowInner; /* offset in bytes */ 561 566 #endif 562 #if INTERP_Z 563 GLdepth *zRow; 567 #ifdef INTERP_Z 568 # ifdef DEPTH_TYPE 569 DEPTH_TYPE *zRow; 564 570 int dZRowOuter, dZRowInner; /* offset in bytes */ 571 # endif 565 572 GLfixed fz, fdzOuter, fdzInner; 566 573 #endif 567 #if INTERP_RGB574 #ifdef INTERP_RGB 568 575 GLfixed fr, fdrOuter, fdrInner; 569 576 GLfixed fg, fdgOuter, fdgInner; 570 577 GLfixed fb, fdbOuter, fdbInner; 571 578 #endif 572 #if INTERP_SPEC579 #ifdef INTERP_SPEC 573 580 GLfixed fsr, fdsrOuter, fdsrInner; 574 581 GLfixed fsg, fdsgOuter, fdsgInner; 575 582 GLfixed fsb, fdsbOuter, fdsbInner; 576 583 #endif 577 #if INTERP_ALPHA584 #ifdef INTERP_ALPHA 578 585 GLfixed fa, fdaOuter, fdaInner; 579 586 #endif 580 #if INTERP_INDEX587 #ifdef INTERP_INDEX 581 588 GLfixed fi, fdiOuter, fdiInner; 582 589 #endif 583 #if INTERP_INT_ST590 #ifdef INTERP_INT_ST 584 591 GLfixed fs, fdsOuter, fdsInner; 585 592 GLfixed ft, fdtOuter, fdtInner; 586 593 #endif 587 #if INTERP_STUV594 #ifdef INTERP_STUV 588 595 GLfloat sLeft, dsOuter, dsInner; 589 596 GLfloat tLeft, dtOuter, dtInner; … … 591 598 GLfloat vLeft, dvOuter, dvInner; 592 599 #endif 593 #if INTERP_STUV1600 #ifdef INTERP_STUV1 594 601 GLfloat s1Left, ds1Outer, ds1Inner; 595 602 GLfloat t1Left, dt1Outer, dt1Inner; … … 665 672 #ifdef PIXEL_ADDRESS 666 673 { 667 pRow = (PIXEL_TYPE *) 674 pRow = (PIXEL_TYPE *)PIXEL_ADDRESS( FixedToInt(fxLeftEdge), iy ); 668 675 dPRowOuter = -((int)BYTES_PER_ROW) + idxOuter * sizeof(PIXEL_TYPE); 669 676 /* negative because Y=0 at bottom and increases upward */ … … 680 687 */ 681 688 682 #if INTERP_Z689 #ifdef INTERP_Z 683 690 { 684 GLfloat z0, tmp; 685 z0 = VB->Win.data[vLower][2] + ctx->PolygonZoffset; 686 #if DEPTH_BITS==16 687 /* interpolate fixed-pt values */ 688 tmp = (z0 * FIXED_SCALE + dzdx * adjx + dzdy * adjy) + FIXED_HALF; 689 if (tmp < MAX_GLUINT/2) 690 fz = (GLfixed) tmp; 691 else 692 fz = MAX_GLUINT/2; 693 fdzOuter = SignedFloatToFixed(dzdy + dxOuter * dzdx); 694 #else 695 (void) tmp; 696 /* interpolate depth values exactly */ 697 fz = (GLint) (z0 + dzdx*FixedToFloat(adjx) + dzdy*FixedToFloat(adjy)); 698 fdzOuter = (GLint) (dzdy + dxOuter * dzdx); 699 #endif 700 zRow = Z_ADDRESS( ctx, FixedToInt(fxLeftEdge), iy ); 701 dZRowOuter = (ctx->Buffer->Width + idxOuter) * sizeof(GLdepth); 702 } 703 #endif 704 #if INTERP_RGB 691 GLfloat z0 = VB->Win.data[vLower][2] + ctx->PolygonZoffset; 692 if (depthBits <= 16) { 693 /* interpolate fixed-pt values */ 694 GLfloat tmp = (z0 * FIXED_SCALE + dzdx * adjx + dzdy * adjy) + FIXED_HALF; 695 if (tmp < MAX_GLUINT / 2) 696 fz = (GLfixed) tmp; 697 else 698 fz = MAX_GLUINT / 2; 699 fdzOuter = SignedFloatToFixed(dzdy + dxOuter * dzdx); 700 } 701 else { 702 /* interpolate depth values exactly */ 703 fz = (GLint) (z0 + dzdx*FixedToFloat(adjx) + dzdy*FixedToFloat(adjy)); 704 fdzOuter = (GLint) (dzdy + dxOuter * dzdx); 705 } 706 # ifdef DEPTH_TYPE 707 zRow = (DEPTH_TYPE *) _mesa_zbuffer_address(ctx, FixedToInt(fxLeftEdge), iy); 708 dZRowOuter = (ctx->DrawBuffer->Width + idxOuter) * sizeof(DEPTH_TYPE); 709 # endif 710 } 711 #endif 712 #ifdef INTERP_RGB 705 713 fr = (GLfixed)(IntToFixed(VB->ColorPtr->data[vLower][0]) + drdx * adjx + drdy * adjy) 706 714 + FIXED_HALF; … … 715 723 fdbOuter = SignedFloatToFixed(dbdy + dxOuter * dbdx); 716 724 #endif 717 #if INTERP_SPEC725 #ifdef INTERP_SPEC 718 726 fsr = (GLfixed)(IntToFixed(VB->Specular[vLower][0]) + dsrdx * adjx + dsrdy * adjy) 719 727 + FIXED_HALF; … … 728 736 fdsbOuter = SignedFloatToFixed(dsbdy + dxOuter * dsbdx); 729 737 #endif 730 #if INTERP_ALPHA738 #ifdef INTERP_ALPHA 731 739 fa = (GLfixed)(IntToFixed(VB->ColorPtr->data[vLower][3]) + dadx * adjx + dady * adjy) 732 740 + FIXED_HALF; 733 741 fdaOuter = SignedFloatToFixed(dady + dxOuter * dadx); 734 742 #endif 735 #if INTERP_INDEX743 #ifdef INTERP_INDEX 736 744 fi = (GLfixed)(VB->IndexPtr->data[vLower] * FIXED_SCALE + didx * adjx 737 745 + didy * adjy) + FIXED_HALF; 738 746 fdiOuter = SignedFloatToFixed(didy + dxOuter * didx); 739 747 #endif 740 #if INTERP_INT_ST748 #ifdef INTERP_INT_ST 741 749 { 742 750 GLfloat s0, t0; … … 745 753 fdsOuter = SignedFloatToFixed(dsdy + dxOuter * dsdx); 746 754 747 748 749 750 751 752 753 754 755 756 757 758 759 760 #endif 761 #if INTERP_STUV755 if (VB->TexCoordPtr[0]->size > 1) 756 { 757 t0 = VB->TexCoordPtr[0]->data[vLower][1] * T_SCALE; 758 ft = (GLfixed)(t0 * FIXED_SCALE + dtdx * adjx + dtdy * adjy) + FIXED_HALF; 759 fdtOuter = SignedFloatToFixed(dtdy + dxOuter * dtdx); 760 } 761 else 762 { 763 t0 = 0; 764 ft = (GLfixed) FIXED_HALF; 765 fdtOuter = SignedFloatToFixed(0); 766 } 767 } 768 #endif 769 #ifdef INTERP_STUV 762 770 { 763 771 GLfloat invW = VB->Win.data[vLower][3]; … … 766 774 sLeft = s0 + (dsdx * adjx + dsdy * adjy) * (1.0F/FIXED_SCALE); 767 775 dsOuter = dsdy + dxOuter * dsdx; 768 769 { 770 771 772 773 774 775 776 777 { 778 779 780 781 782 783 784 785 { 786 787 788 789 790 791 792 } 793 #endif 794 #if INTERP_STUV1776 if (VB->TexCoordPtr[0]->size > 1) 777 { 778 t0 = VB->TexCoordPtr[0]->data[vLower][1] * invW; 779 tLeft = t0 + (dtdx * adjx + dtdy * adjy) * (1.0F/FIXED_SCALE); 780 dtOuter = dtdy + dxOuter * dtdx; 781 } else { 782 tLeft = dtOuter = 0; 783 } 784 if (VB->TexCoordPtr[0]->size > 2) 785 { 786 u0 = VB->TexCoordPtr[0]->data[vLower][2] * invW; 787 uLeft = u0 + (dudx * adjx + dudy * adjy) * (1.0F/FIXED_SCALE); 788 duOuter = dudy + dxOuter * dudx; 789 } else { 790 uLeft = duOuter = 0; 791 } 792 if (VB->TexCoordPtr[0]->size > 3) 793 { 794 v0 = VB->TexCoordPtr[0]->data[vLower][3] * invW; 795 } else { 796 v0 = invW; 797 } 798 vLeft = v0 + (dvdx * adjx + dvdy * adjy) * (1.0F/FIXED_SCALE); 799 dvOuter = dvdy + dxOuter * dvdx; 800 } 801 #endif 802 #ifdef INTERP_STUV1 795 803 { 796 804 GLfloat invW = VB->Win.data[vLower][3]; … … 799 807 s1Left = s0 + (ds1dx * adjx + ds1dy * adjy) * (1.0F/FIXED_SCALE); 800 808 ds1Outer = ds1dy + dxOuter * ds1dx; 801 802 { 803 804 805 806 807 808 809 810 { 811 812 813 814 815 816 817 818 { 819 820 821 822 823 824 809 if (VB->TexCoordPtr[0]->size > 1) 810 { 811 t0 = VB->TexCoordPtr[1]->data[vLower][1] * invW; 812 t1Left = t0 + (dt1dx * adjx + dt1dy * adjy) * (1.0F/FIXED_SCALE); 813 dt1Outer = dt1dy + dxOuter * dt1dx; 814 } else { 815 t1Left = dt1Outer = 0; 816 } 817 if (VB->TexCoordPtr[0]->size > 2) 818 { 819 u0 = VB->TexCoordPtr[1]->data[vLower][2] * invW; 820 u1Left = u0 + (du1dx * adjx + du1dy * adjy) * (1.0F/FIXED_SCALE); 821 du1Outer = du1dy + dxOuter * du1dx; 822 } else { 823 u1Left = du1Outer = 0; 824 } 825 if (VB->TexCoordPtr[0]->size > 3) 826 { 827 v0 = VB->TexCoordPtr[1]->data[vLower][3] * invW; 828 } else { 829 v0 = invW; 830 } 831 v1Left = v0 + (dv1dx * adjx + dv1dy * adjy) * (1.0F/FIXED_SCALE); 832 dv1Outer = dv1dy + dxOuter * dv1dx; 825 833 } 826 834 #endif … … 843 851 dPRowInner = dPRowOuter + sizeof(PIXEL_TYPE); 844 852 #endif 845 #if INTERP_Z 846 dZRowInner = dZRowOuter + sizeof(GLdepth); 853 #ifdef INTERP_Z 854 # ifdef DEPTH_TYPE 855 dZRowInner = dZRowOuter + sizeof(DEPTH_TYPE); 856 # endif 847 857 fdzInner = fdzOuter + fdzdx; 848 858 #endif 849 #if INTERP_RGB859 #ifdef INTERP_RGB 850 860 fdrInner = fdrOuter + fdrdx; 851 861 fdgInner = fdgOuter + fdgdx; 852 862 fdbInner = fdbOuter + fdbdx; 853 863 #endif 854 #if INTERP_SPEC864 #ifdef INTERP_SPEC 855 865 fdsrInner = fdsrOuter + fdsrdx; 856 866 fdsgInner = fdsgOuter + fdsgdx; 857 867 fdsbInner = fdsbOuter + fdsbdx; 858 868 #endif 859 #if INTERP_ALPHA869 #ifdef INTERP_ALPHA 860 870 fdaInner = fdaOuter + fdadx; 861 871 #endif 862 #if INTERP_INDEX872 #ifdef INTERP_INDEX 863 873 fdiInner = fdiOuter + fdidx; 864 874 #endif 865 #if INTERP_INT_ST875 #ifdef INTERP_INT_ST 866 876 fdsInner = fdsOuter + fdsdx; 867 877 fdtInner = fdtOuter + fdtdx; 868 878 #endif 869 #if INTERP_STUV870 871 872 873 874 #endif 875 #if INTERP_STUV1876 877 878 879 879 #ifdef INTERP_STUV 880 dsInner = dsOuter + dsdx; 881 dtInner = dtOuter + dtdx; 882 duInner = duOuter + dudx; 883 dvInner = dvOuter + dvdx; 884 #endif 885 #ifdef INTERP_STUV1 886 ds1Inner = ds1Outer + ds1dx; 887 dt1Inner = dt1Outer + dt1dx; 888 du1Inner = du1Outer + du1dx; 889 dv1Inner = dv1Outer + dv1dx; 880 890 #endif 881 891 … … 883 893 /* initialize the span interpolants to the leftmost value */ 884 894 /* ff = fixed-pt fragment */ 885 #if INTERP_Z895 #ifdef INTERP_Z 886 896 GLfixed ffz = fz; 887 /*GLdepth *zp = zRow;*/ 888 #endif 889 #if INTERP_RGB 897 #endif 898 #ifdef INTERP_RGB 890 899 GLfixed ffr = fr, ffg = fg, ffb = fb; 891 900 #endif 892 #if INTERP_SPEC901 #ifdef INTERP_SPEC 893 902 GLfixed ffsr = fsr, ffsg = fsg, ffsb = fsb; 894 903 #endif 895 #if INTERP_ALPHA904 #ifdef INTERP_ALPHA 896 905 GLfixed ffa = fa; 897 906 #endif 898 #if INTERP_INDEX907 #ifdef INTERP_INDEX 899 908 GLfixed ffi = fi; 900 909 #endif 901 #if INTERP_INT_ST910 #ifdef INTERP_INT_ST 902 911 GLfixed ffs = fs, fft = ft; 903 912 #endif 904 #if INTERP_STUV913 #ifdef INTERP_STUV 905 914 GLfloat ss = sLeft, tt = tLeft, uu = uLeft, vv = vLeft; 906 915 #endif 907 #if INTERP_STUV1916 #ifdef INTERP_STUV1 908 917 GLfloat ss1 = s1Left, tt1 = t1Left, uu1 = u1Left, vv1 = v1Left; 909 918 #endif … … 911 920 GLint right = FixedToInt(fxRightEdge); 912 921 913 #if INTERP_RGB922 #ifdef INTERP_RGB 914 923 { 915 924 /* need this to accomodate round-off errors */ … … 925 934 } 926 935 #endif 927 #if INTERP_SPEC936 #ifdef INTERP_SPEC 928 937 { 929 938 /* need this to accomodate round-off errors */ … … 939 948 } 940 949 #endif 941 #if INTERP_ALPHA950 #ifdef INTERP_ALPHA 942 951 { 943 952 GLfixed ffaend = ffa+(right-left-1)*fdadx; … … 946 955 } 947 956 #endif 948 #if INTERP_INDEX957 #ifdef INTERP_INDEX 949 958 if (ffi<0) ffi = 0; 950 959 #endif … … 969 978 fError -= FIXED_ONE; 970 979 #ifdef PIXEL_ADDRESS 971 pRow = (PIXEL_TYPE*) ((GLubyte*)pRow + dPRowOuter); 972 #endif 973 #if INTERP_Z 974 zRow = (GLdepth*) ((GLubyte*)zRow + dZRowOuter); 980 pRow = (PIXEL_TYPE *) ((GLubyte*)pRow + dPRowOuter); 981 #endif 982 #ifdef INTERP_Z 983 # ifdef DEPTH_TYPE 984 zRow = (DEPTH_TYPE *) ((GLubyte*)zRow + dZRowOuter); 985 # endif 975 986 fz += fdzOuter; 976 987 #endif 977 #if INTERP_RGB988 #ifdef INTERP_RGB 978 989 fr += fdrOuter; fg += fdgOuter; fb += fdbOuter; 979 990 #endif 980 #if INTERP_SPEC991 #ifdef INTERP_SPEC 981 992 fsr += fdsrOuter; fsg += fdsgOuter; fsb += fdsbOuter; 982 993 #endif 983 #if INTERP_ALPHA994 #ifdef INTERP_ALPHA 984 995 fa += fdaOuter; 985 996 #endif 986 #if INTERP_INDEX997 #ifdef INTERP_INDEX 987 998 fi += fdiOuter; 988 999 #endif 989 #if INTERP_INT_ST1000 #ifdef INTERP_INT_ST 990 1001 fs += fdsOuter; ft += fdtOuter; 991 1002 #endif 992 #if INTERP_STUV993 994 995 996 997 #endif 998 #if INTERP_STUV1999 1000 1001 1002 1003 #ifdef INTERP_STUV 1004 sLeft += dsOuter; 1005 tLeft += dtOuter; 1006 uLeft += duOuter; 1007 vLeft += dvOuter; 1008 #endif 1009 #ifdef INTERP_STUV1 1010 s1Left += ds1Outer; 1011 t1Left += dt1Outer; 1012 u1Left += du1Outer; 1013 v1Left += dv1Outer; 1003 1014 #endif 1004 1015 } 1005 1016 else { 1006 1017 #ifdef PIXEL_ADDRESS 1007 pRow = (PIXEL_TYPE*) ((GLubyte*)pRow + dPRowInner); 1008 #endif 1009 #if INTERP_Z 1010 zRow = (GLdepth*) ((GLubyte*)zRow + dZRowInner); 1018 pRow = (PIXEL_TYPE *) ((GLubyte*)pRow + dPRowInner); 1019 #endif 1020 #ifdef INTERP_Z 1021 # ifdef DEPTH_TYPE 1022 zRow = (DEPTH_TYPE *) ((GLubyte*)zRow + dZRowInner); 1023 # endif 1011 1024 fz += fdzInner; 1012 1025 #endif 1013 #if INTERP_RGB1026 #ifdef INTERP_RGB 1014 1027 fr += fdrInner; fg += fdgInner; fb += fdbInner; 1015 1028 #endif 1016 #if INTERP_SPEC1029 #ifdef INTERP_SPEC 1017 1030 fsr += fdsrInner; fsg += fdsgInner; fsb += fdsbInner; 1018 1031 #endif 1019 #if INTERP_ALPHA1032 #ifdef INTERP_ALPHA 1020 1033 fa += fdaInner; 1021 1034 #endif 1022 #if INTERP_INDEX1035 #ifdef INTERP_INDEX 1023 1036 fi += fdiInner; 1024 1037 #endif 1025 #if INTERP_INT_ST1038 #ifdef INTERP_INT_ST 1026 1039 fs += fdsInner; ft += fdtInner; 1027 1040 #endif 1028 #if INTERP_STUV1029 1030 1031 1032 1033 #endif 1034 #if INTERP_STUV11035 1036 1037 1038 1041 #ifdef INTERP_STUV 1042 sLeft += dsInner; 1043 tLeft += dtInner; 1044 uLeft += duInner; 1045 vLeft += dvInner; 1046 #endif 1047 #ifdef INTERP_STUV1 1048 s1Left += ds1Inner; 1049 t1Left += dt1Inner; 1050 u1Left += du1Inner; 1051 v1Left += dv1Inner; 1039 1052 #endif 1040 1053 } … … 1065 1078 #undef S_SCALE 1066 1079 #undef T_SCALE 1080 1081 #undef FixedToDepth
Note:
See TracChangeset
for help on using the changeset viewer.