Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

triangle.h File Reference

#include "basetype.h"
#include "swthandle.h"

Go to the source code of this file.

Compounds

struct  Triangle_Edge
struct  Triangle_Gradients
struct  Triangle_Triangle

Defines

#define USE_FIXED_POINT
#define OOZ_NUMERATOR_SHIFTER   (32)
#define OOZ_NUMERATOR   0xFFFFFFFF
#define OZ_FXP_SHIFTER   (20)
#define OOZ_FXP_SHIFTER   (26)
#define OOZ_DIV_PRECISION_BITS   (18)
#define OOZ_MULTIPLY_PRECISION_BITS   (12)
#define OZ_MULTIPLY_PRECISION_BITS   (4)
#define OOZ_DIV_PREP_RSHIFT   (OOZ_FXP_SHIFTER - OOZ_DIV_PRECISION_BITS)
#define RGB_FXP_SHIFTER   (15)
#define Z_FXP_SHIFTER   (8)
#define Z_FXP_MULTIPLIER   ((geFloat)( 1 << Z_FXP_SHIFTER ))
#define OOZ_FXP_MULTIPLIER   ((geFloat)( 1 << OOZ_FXP_SHIFTER ))
#define OZ_FXP_MULTIPLIER   ((geFloat)( 1 << OZ_FXP_SHIFTER ))
#define RGB_FXP_MULTIPLIER   ((geFloat)( 1 << RGB_FXP_SHIFTER ))
#define OOZ_MUL_PREP_RSHIFT   (OOZ_NUMERATOR_SHIFTER - OOZ_FXP_SHIFTER + OOZ_DIV_PREP_RSHIFT - OOZ_MULTIPLY_PRECISION_BITS)
#define OZ_MUL_PREP_RSHIFT   (OZ_FXP_SHIFTER - OZ_MULTIPLY_PRECISION_BITS)
#define OOZ_DIV_PREP(OOZ)   ((OOZ)>>OOZ_DIV_PREP_RSHIFT)
#define OZ_MUL_PREP(OZ)   ((OZ)>>OZ_MUL_PREP_RSHIFT)
#define OOZ_MUL_PREP(OZ)   ((OZ)>>OOZ_MUL_PREP_RSHIFT)
#define OOZ_MUL_Z(OOZ, Z)   ( ((OOZ)>>(OOZ_MULTIPLY_PRECISION_BITS-8)) * (Z) )
#define GRADIENT_OOZ_MUL_Z(OOZ, Z)   ( ((OOZ)>>(OOZ_FXPMULTIPLY_PRECISION_BITS-8)) * (Z) )
#define USE_FIXED_POINT
#define DEST16BIT
#define FXFL   int32
#define FXFL_OOZ(XXX)   ((int32)((XXX) * OOZ_FXP_MULTIPLIER))
#define FXFL_OZ(XXX)   ((int32)((XXX) * OZ_FXP_MULTIPLIER))
#define FXFL_RGB(XXX)   ((int32)((XXX) * RGB_FXP_MULTIPLIER))
#define FXFL_Z(XXX)   ((int32)((XXX) * Z_FXP_MULTIPLIER))
#define OOZ_FXP_TO_16_16(XXX)   ( (XXX)>>(OOZ_FXP_SHIFTER-16) )
#define OZ_FXP_TO_16_16(XXX)   ( (XXX)>>(OZ_FXP_SHIFTER-16) )
#define Z_FXP_TO_INT(XXX)   ( (XXX)>>Z_FXP_SHIFTER )
#define RGB_FXP_TO_16_16(XXX)   (XXX)
#define TEXTUREPIXEL   unsigned char
#define LIGHTMAPPIXEL   unsigned char
#define DESTPIXEL   unsigned short
#define ZMAPPIXEL   unsigned short
#define ALPHAMAPPIXEL   unsigned short
#define DESTPIXEL_SHIFTER   (sizeof(DESTPIXEL)/2)
#define TOPDOWN_OR_BOTTOMUP(XXX)   ((XXX))
#define TMAP   0x1
#define LSHADE   0x2
#define LFLAT   0x4
#define LMAP   0x8
#define AFLAT   0x10
#define AMAP   0x20
#define ZSET   0x40
#define ZTEST   0x80
#define ZBUF   0x100
#define SBUF   0x200
#define D565   0x200
#define TRASTER_SMALL_DIVIDE_TABLESIZE   129
#define Triangle_PaletteEntry   uint32

Typedefs

typedef Triangle_Gradients Triangle_Gradients
typedef Triangle_Edge Triangle_Edge
typedef Triangle_Triangle Triangle_Triangle

Functions

geBoolean GENESISCC Triangle_GradientsCompute (Triangle_Gradients *G, const DRV_TLVertex *pVertices, geFloat TextureWidth, geFloat TextureHeight)
void GENESISCC Triangle_EdgeCompute (Triangle_Edge *E, const Triangle_Gradients *Gradients, const DRV_TLVertex *pVertices, int Top, int Bottom, int IsLeftEdge)

Variables

int32 OneOverZ
int32 UOverZ
int32 VOverZ
int32 R
int32 G
int32 B
int32 A
int32 OneMinusA
Triangle_Triangle Triangle


Define Documentation

#define AFLAT   0x10
 

Definition at line 170 of file triangle.h.

Referenced by TRaster_Rasterize().

#define ALPHAMAPPIXEL   unsigned short
 

Definition at line 156 of file triangle.h.

Referenced by while().

#define AMAP   0x20
 

Definition at line 171 of file triangle.h.

#define D565   0x200
 

Definition at line 176 of file triangle.h.

#define DEST16BIT
 

Definition at line 131 of file triangle.h.

#define DESTPIXEL   unsigned short
 

Definition at line 151 of file triangle.h.

Referenced by while().

#define DESTPIXEL_SHIFTER   (sizeof(DESTPIXEL)/2)
 

Definition at line 158 of file triangle.h.

Referenced by TRaster_Rasterize().

#define FXFL   int32
 

Definition at line 134 of file triangle.h.

#define FXFL_OOZ XXX   )     ((int32)((XXX) * OOZ_FXP_MULTIPLIER))
 

Definition at line 135 of file triangle.h.

Referenced by Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define FXFL_OZ XXX   )     ((int32)((XXX) * OZ_FXP_MULTIPLIER))
 

Definition at line 136 of file triangle.h.

Referenced by Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define FXFL_RGB XXX   )     ((int32)((XXX) * RGB_FXP_MULTIPLIER))
 

Definition at line 137 of file triangle.h.

Referenced by Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define FXFL_Z XXX   )     ((int32)((XXX) * Z_FXP_MULTIPLIER))
 

Definition at line 138 of file triangle.h.

Referenced by Triangle_GradientsCompute().

#define GRADIENT_OOZ_MUL_Z OOZ,
Z   )     ( ((OOZ)>>(OOZ_FXPMULTIPLY_PRECISION_BITS-8)) * (Z) )
 

Definition at line 121 of file triangle.h.

#define LFLAT   0x4
 

Definition at line 168 of file triangle.h.

#define LIGHTMAPPIXEL   unsigned char
 

Definition at line 149 of file triangle.h.

Referenced by TRaster_LightMapSetup().

#define LMAP   0x8
 

Definition at line 169 of file triangle.h.

Referenced by TRaster_Rasterize(), and Triangle_GradientsCompute().

#define LSHADE   0x2
 

Definition at line 167 of file triangle.h.

Referenced by TRaster_Rasterize(), Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define OOZ_DIV_PRECISION_BITS   (18)
 

Definition at line 55 of file triangle.h.

#define OOZ_DIV_PREP OOZ   )     ((OOZ)>>OOZ_DIV_PREP_RSHIFT)
 

Definition at line 97 of file triangle.h.

#define OOZ_DIV_PREP_RSHIFT   (OOZ_FXP_SHIFTER - OOZ_DIV_PRECISION_BITS)
 

Definition at line 60 of file triangle.h.

#define OOZ_FXP_MULTIPLIER   ((geFloat)( 1 << OOZ_FXP_SHIFTER ))
 

Definition at line 66 of file triangle.h.

#define OOZ_FXP_SHIFTER   (26)
 

Definition at line 53 of file triangle.h.

#define OOZ_FXP_TO_16_16 XXX   )     ( (XXX)>>(OOZ_FXP_SHIFTER-16) )
 

Definition at line 139 of file triangle.h.

Referenced by Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define OOZ_MUL_PREP OZ   )     ((OZ)>>OOZ_MUL_PREP_RSHIFT)
 

Definition at line 109 of file triangle.h.

#define OOZ_MUL_PREP_RSHIFT   (OOZ_NUMERATOR_SHIFTER - OOZ_FXP_SHIFTER + OOZ_DIV_PREP_RSHIFT - OOZ_MULTIPLY_PRECISION_BITS)
 

Definition at line 70 of file triangle.h.

#define OOZ_MUL_Z OOZ,
Z   )     ( ((OOZ)>>(OOZ_MULTIPLY_PRECISION_BITS-8)) * (Z) )
 

Definition at line 115 of file triangle.h.

#define OOZ_MULTIPLY_PRECISION_BITS   (12)
 

Definition at line 57 of file triangle.h.

#define OOZ_NUMERATOR   0xFFFFFFFF
 

Definition at line 46 of file triangle.h.

#define OOZ_NUMERATOR_SHIFTER   (32)
 

Definition at line 45 of file triangle.h.

#define OZ_FXP_MULTIPLIER   ((geFloat)( 1 << OZ_FXP_SHIFTER ))
 

Definition at line 67 of file triangle.h.

#define OZ_FXP_SHIFTER   (20)
 

Definition at line 52 of file triangle.h.

#define OZ_FXP_TO_16_16 XXX   )     ( (XXX)>>(OZ_FXP_SHIFTER-16) )
 

Definition at line 140 of file triangle.h.

Referenced by Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define OZ_MUL_PREP OZ   )     ((OZ)>>OZ_MUL_PREP_RSHIFT)
 

Definition at line 103 of file triangle.h.

#define OZ_MUL_PREP_RSHIFT   (OZ_FXP_SHIFTER - OZ_MULTIPLY_PRECISION_BITS)
 

Definition at line 71 of file triangle.h.

#define OZ_MULTIPLY_PRECISION_BITS   (4)
 

Definition at line 58 of file triangle.h.

#define RGB_FXP_MULTIPLIER   ((geFloat)( 1 << RGB_FXP_SHIFTER ))
 

Definition at line 68 of file triangle.h.

#define RGB_FXP_SHIFTER   (15)
 

Definition at line 62 of file triangle.h.

Referenced by Span_LightMapSample(), and while().

#define RGB_FXP_TO_16_16 XXX   )     (XXX)
 

Definition at line 142 of file triangle.h.

#define SBUF   0x200
 

Definition at line 175 of file triangle.h.

#define TEXTUREPIXEL   unsigned char
 

Definition at line 148 of file triangle.h.

Referenced by TRaster_Rasterize().

#define TMAP   0x1
 

Definition at line 166 of file triangle.h.

Referenced by TRaster_Rasterize(), Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define TOPDOWN_OR_BOTTOMUP XXX   )     ((XXX))
 

Definition at line 162 of file triangle.h.

Referenced by Span_LightMapSample(), TRaster_Rasterize(), and while().

#define TRASTER_SMALL_DIVIDE_TABLESIZE   129
 

Definition at line 180 of file triangle.h.

Referenced by TRaster_Setup().

#define Triangle_PaletteEntry   uint32
 

Definition at line 258 of file triangle.h.

Referenced by TRaster_Rasterize().

#define USE_FIXED_POINT
 

Definition at line 130 of file triangle.h.

#define USE_FIXED_POINT
 

Definition at line 130 of file triangle.h.

#define Z_FXP_MULTIPLIER   ((geFloat)( 1 << Z_FXP_SHIFTER ))
 

Definition at line 65 of file triangle.h.

#define Z_FXP_SHIFTER   (8)
 

Definition at line 63 of file triangle.h.

#define Z_FXP_TO_INT XXX   )     ( (XXX)>>Z_FXP_SHIFTER )
 

Definition at line 141 of file triangle.h.

Referenced by Triangle_EdgeCompute(), and Triangle_GradientsCompute().

#define ZBUF   0x100
 

Definition at line 174 of file triangle.h.

#define ZMAPPIXEL   unsigned short
 

Definition at line 155 of file triangle.h.

Referenced by while().

#define ZSET   0x40
 

Definition at line 172 of file triangle.h.

#define ZTEST   0x80
 

Definition at line 173 of file triangle.h.


Typedef Documentation

typedef struct Triangle_Edge Triangle_Edge
 

typedef struct Triangle_Gradients Triangle_Gradients
 

typedef struct Triangle_Triangle Triangle_Triangle
 


Function Documentation

void GENESISCC Triangle_EdgeCompute Triangle_Edge E,
const Triangle_Gradients Gradients,
const DRV_TLVertex pVertices,
int  Top,
int  Bottom,
int  IsLeftEdge
 

Definition at line 295 of file Triangle.c.

References Triangle_Gradients::Affine, Triangle_Edge::B, Triangle_Edge::BStep, Ceil28_4(), Triangle_Gradients::dBdX, Triangle_Edge::dBdX, Triangle_Gradients::dBdY, Triangle_Edge::Denominator, Triangle_Gradients::dGdX, Triangle_Edge::dGdX, Triangle_Gradients::dGdY, Triangle_Gradients::dOneOverZdX, Triangle_Edge::dOneOverZdX, Triangle_Gradients::dOneOverZdY, Triangle_Gradients::dRdX, Triangle_Edge::dRdX, Triangle_Gradients::dRdY, Triangle_Gradients::dUOverZdX, Triangle_Edge::dUOverZdX, Triangle_Gradients::dUOverZdY, Triangle_Gradients::dVOverZdX, Triangle_Edge::dVOverZdX, Triangle_Gradients::dVOverZdY, Triangle_Edge::ErrorTerm, Triangle_Gradients::FdBdX, Triangle_Gradients::FdGdX, Triangle_Gradients::FdOneOverZdX, Triangle_Gradients::FdRdX, Triangle_Gradients::FdUOverZdX, Triangle_Gradients::FdVOverZdX, FloorDivMod(), FXFL_OOZ, FXFL_OZ, FXFL_RGB, Triangle_Edge::G, geFloat, GENESISCC, Triangle_Edge::GStep, Triangle_Edge::Height, int32, LSHADE, Triangle_Edge::Numerator, Triangle_Gradients::OneOverZ, Triangle_Edge::OneOverZ, Triangle_Edge::OneOverZStep, OOZ_FXP_TO_16_16, OZ_FXP_TO_16_16, r, Triangle_Edge::R, Triangle_Triangle::ROPFlags, Triangle_Edge::RStep, TMAP, Triangle, Triangle_Gradients::UOverZ, Triangle_Edge::UOverZ, Triangle_Edge::UOverZStep, Triangle_Gradients::VOverZ, Triangle_Edge::VOverZ, Triangle_Edge::VOverZStep, Triangle_Edge::X, DRV_TLVertex::x, Triangle_Edge::XStep, Triangle_Edge::Y, DRV_TLVertex::y, Z_FXP_TO_INT, and Triangle_Gradients::ZScale.

Referenced by TRaster_Rasterize().

00302 {
00303         int YEnd;
00304         int TopY,BottomY,TopX=0,BottomX;
00305         TopY    = (int32)(pVertices[Top].y * 16.0f);
00306         BottomY = (int32)(pVertices[Bottom].y * 16.0f); 
00307         E->Y = Ceil28_4( TopY );
00308         YEnd = Ceil28_4( BottomY );
00309         E->Height       = YEnd - E->Y;
00310 
00311         if (!E->Height)
00312                 return;
00313 
00314         {
00315                 int32 dN = BottomY-TopY;
00316                 if (dN > 0)
00317                         {
00318                                 int32 dM,InitialNumerator;
00319                                 //int32 dM   = (int32)(FWidth  * 16.0f);
00320                                 TopX    = (int32)(pVertices[Top].x * 16.0f);
00321                                 BottomX = (int32)(pVertices[Bottom].x * 16.0f);
00322                                 dM = BottomX - TopX;
00323                         
00324                                 InitialNumerator = dM*16*E->Y - dM*TopY +       dN*TopX - 1 + dN*16;
00325                                 FloorDivMod(InitialNumerator,dN*16,&(E->X),&(E->ErrorTerm));
00326                                 FloorDivMod(dM*16,dN*16,&(E->XStep),&(E->Numerator));
00327                                 E->Denominator = dN*16;
00328                         }
00329                 else
00330                         {
00331                                 E->XStep=0;
00332                                 E->X = (int)(pVertices[Top].x);
00333                         }
00334         }
00335 
00336         if (IsLeftEdge)
00337                 {
00338                         geFloat XPrestep                = E->X - (geFloat)TopX * (1.0f/16.0f);
00339                         geFloat YPrestep                = E->Y - (geFloat)TopY * (1.0f/16.0f);
00340                         
00341                         if (Triangle.ROPFlags & (TMAP | ZBUF))
00342                                 {
00343                                         E->OneOverZ             = FXFL_OOZ(Gradients->OneOverZ[Top] + YPrestep * Gradients->dOneOverZdY + XPrestep * Gradients->FdOneOverZdX);
00344                                         E->OneOverZStep = FXFL_OOZ(E->XStep * Gradients->FdOneOverZdX   + Gradients->dOneOverZdY);
00345                                         E->dOneOverZdX  = Gradients->dOneOverZdX;
00346                                 }
00347 
00348                         if (Triangle.ROPFlags & TMAP)
00349                                 {
00350                                         E->UOverZ               = FXFL_OZ(Gradients->UOverZ[Top]        + YPrestep * Gradients->dUOverZdY       + XPrestep * Gradients->FdUOverZdX);
00351                                         E->UOverZStep   = FXFL_OZ(E->XStep * Gradients->FdUOverZdX + Gradients->dUOverZdY);
00352                                         E->dUOverZdX    = Gradients->dUOverZdX;
00353 
00354                                         E->VOverZ               = FXFL_OZ(Gradients->VOverZ[Top]        + YPrestep * Gradients->dVOverZdY       + XPrestep * Gradients->FdVOverZdX);
00355                                         E->VOverZStep   = FXFL_OZ(E->XStep * Gradients->FdVOverZdX + Gradients->dVOverZdY);
00356                                         E->dVOverZdX    = Gradients->dVOverZdX;
00357                                 }
00358 
00359                         if (Triangle.ROPFlags & LSHADE)
00360                                 {
00361                                         E->R                    = FXFL_RGB( (pVertices[Top].r) + 0.5f   + YPrestep * Gradients->dRdY            + XPrestep * Gradients->FdRdX);
00362                                         E->RStep                = FXFL_RGB(E->XStep * Gradients->FdRdX + Gradients->dRdY);
00363                                         E->dRdX                 = Gradients->dRdX;
00364 
00365                                         E->G                    = FXFL_RGB( (pVertices[Top].g) + 0.5f   + YPrestep * Gradients->dGdY            + XPrestep * Gradients->FdGdX);
00366                                         E->GStep                = FXFL_RGB(E->XStep * Gradients->FdGdX + Gradients->dGdY);
00367                                         E->dGdX                 = Gradients->dGdX;
00368 
00369                                         E->B                    = FXFL_RGB( (pVertices[Top].b) + 0.5f   + YPrestep * Gradients->dBdY            + XPrestep * Gradients->FdBdX);
00370                                         E->BStep                = FXFL_RGB(E->XStep * Gradients->FdBdX + Gradients->dBdY);
00371                                         E->dBdX                 = Gradients->dBdX;
00372                                 }
00373 
00374                         if (Gradients->Affine)
00375                                 {
00376                                         if (Triangle.ROPFlags & (TMAP | ZBUF))
00377                                                 {
00378                                                         E->OneOverZ     = OOZ_FXP_TO_16_16(     E->OneOverZ             )  * Z_FXP_TO_INT(Gradients->ZScale);
00379                                                         E->OneOverZStep = OOZ_FXP_TO_16_16(     E->OneOverZStep )  * Z_FXP_TO_INT(Gradients->ZScale);
00380                                                 }
00381                                         if (Triangle.ROPFlags & TMAP)
00382                                                 {
00383                                                         E->UOverZ               = OZ_FXP_TO_16_16 (     E->UOverZ               );
00384                                                         E->UOverZStep   = OZ_FXP_TO_16_16 (     E->UOverZStep   );
00385                                                         E->VOverZ               = OZ_FXP_TO_16_16 (     E->VOverZ               );
00386                                                         E->VOverZStep   = OZ_FXP_TO_16_16 (     E->VOverZStep   );
00387                                                 }
00388                                 }       
00389                 }
00390 }

geBoolean GENESISCC Triangle_GradientsCompute Triangle_Gradients G,
const DRV_TLVertex pVertices,
geFloat  TextureWidth,
geFloat  TextureHeight
 

Definition at line 52 of file Triangle.c.

References FXFL_OOZ, FXFL_OZ, FXFL_RGB, FXFL_Z, G, GE_FALSE, GE_TRUE, geBoolean, geFloat, GENESISCC, LMAP, LSHADE, MAX, Triangle_Triangle::MaxAffineSize, MIN, OOZ_FXP_TO_16_16, OZ_FXP_TO_16_16, Triangle_Triangle::ROPFlags, s, TMAP, Triangle, DRV_TLVertex::x, y, and Z_FXP_TO_INT.

Referenced by TRaster_Rasterize().

00057 {
00058         geFloat OneOverdX;
00059         geFloat OneOverdY;
00060         geFloat Denominator;
00061         geFloat Width02  = pVertices[0].x-pVertices[2].x;
00062         geFloat Height02 = pVertices[0].y-pVertices[2].y;
00063         geFloat Width12  = pVertices[1].x-pVertices[2].x;
00064         geFloat Height12 = pVertices[1].y-pVertices[2].y;
00065         geFloat d02,d12;
00066         geFloat Size;
00067         assert( pVertices[0].z != 0.0f );
00068         assert( pVertices[1].z != 0.0f );
00069         assert( pVertices[2].z != 0.0f );
00070         
00071         Denominator = ( (Width12 * Height02) - (Width02 * Height12));
00072 
00073 
00074         if (Denominator == 0.0f)
00075                 return GE_FALSE;
00076 
00077         OneOverdX = 1.0f / Denominator;
00078 
00079         OneOverdY = -OneOverdX;
00080 
00081         {
00082                 geFloat Right   = MAX(pVertices[0].x,MAX(pVertices[1].x,pVertices[2].x));
00083                 geFloat Left    = MIN(pVertices[0].x,MIN(pVertices[1].x,pVertices[2].x));
00084                 geFloat Top     = MIN(pVertices[0].y,MIN(pVertices[1].y,pVertices[2].y));
00085                 geFloat Bottom  = MAX(pVertices[0].y,MAX(pVertices[1].y,pVertices[2].y));
00086                 Size = MAX(Right-Left,Bottom-Top);
00087         }
00088 
00089         if (Size < Triangle.MaxAffineSize)
00090                 G->Affine = 1;
00091         else
00092                 G->Affine = 0;
00093 
00094 
00095         if (Triangle.ROPFlags & (TMAP | ZBUF))
00096                 {
00097                         geFloat zmax = MAX(pVertices[0].z,MAX(pVertices[1].z,pVertices[2].z));
00098                         geFloat zmin = MIN(pVertices[0].z,MIN(pVertices[1].z,pVertices[2].z));
00099                         // G->FZScale is used to scale the range of all the interpolators to fit nicely 
00100                         // in the predeterminted fixed point ranges.  These fixed point ranges are setup
00101                         // to minimize visible errors.
00102                         // The following code is unfortunate.  Due to the limited range of the fixed 
00103                         // point math, the FZScale has a limited ability to scale everything else.
00104                         // the following ranges are uesd to keep FZScale within known good boundries. 
00105                         //   It's still possible to break the rasterizer by using Z values that are too 
00106                         //   large or too small.
00107                         if (zmax-zmin > 255.0f ) 
00108                                 {
00109                                         G->FZScale = zmin;
00110                                 }
00111                         else
00112                                 {
00113                                         if (zmin<80.0f) 
00114                                                 G->FZScale = zmin;
00115                                         else
00116                                                 {
00117                                                         if (zmax>500.0f) zmax=500.0f;
00118                                                         G->FZScale = zmax;
00119                                                 }
00120                                 }
00121                         #if 0
00122                                 {// debugging code:
00123                                         char s[1000];
00124                                         sprintf(s,"z[0]=%f\t\tz[1]=%f\t\tz[2]=%f\t\tScale=%f\n",
00125                                                 pVertices[0].z,pVertices[1].z,pVertices[2].z,G->FZScale);
00126                                         OutputDebugString(s);
00127                                 }
00128                         #endif
00129                         if (!G->Affine)
00130                                 {               
00131                                         G->OneOverZ[0] = G->FZScale/pVertices[0].z;
00132                                         G->OneOverZ[1] = G->FZScale/pVertices[1].z;
00133                                         G->OneOverZ[2] = G->FZScale/pVertices[2].z;
00134                                 }
00135                         else
00136                                 {
00137                                         geFloat OneOverZScale = 1.0f / G->FZScale;
00138                                         G->OneOverZ[0] = pVertices[0].z  * OneOverZScale;
00139                                         G->OneOverZ[1] = pVertices[1].z  * OneOverZScale;
00140                                         G->OneOverZ[2] = pVertices[2].z  * OneOverZScale;
00141                                 }
00142 
00143                         d02 = G->OneOverZ[0] - G->OneOverZ[2];
00144                         d12 = G->OneOverZ[1] - G->OneOverZ[2];
00145                         G->FdOneOverZdX = OneOverdX *  ((d12 * Height02) - (d02 * Height12));
00146                         G->dOneOverZdY = OneOverdY *  ((d12 * Width02 ) - (d02 * Width12 ));
00147                 
00148                         G->dOneOverZdX = FXFL_OOZ(G->FdOneOverZdX);
00149                         G->ZScale      =  FXFL_Z(G->FZScale);
00150                 }
00151 
00152         if (Triangle.ROPFlags & TMAP)           
00153                 {
00154                         G->UOverZ[0]   = ((pVertices[0].u * TextureWidth )+ 0.5f);
00155                         G->VOverZ[0]   = ((pVertices[0].v * TextureHeight)+ 0.5f);
00156                         G->UOverZ[1]   = ((pVertices[1].u * TextureWidth )+ 0.5f);
00157                         G->VOverZ[1]   = ((pVertices[1].v * TextureHeight)+ 0.5f);
00158                         G->UOverZ[2]   = ((pVertices[2].u * TextureWidth )+ 0.5f);
00159                         G->VOverZ[2]   = ((pVertices[2].v * TextureHeight) + 0.5f);
00160                         
00161                         if (!G->Affine)
00162                                 {               
00163                                         G->UOverZ[0]   *=  G->OneOverZ[0];
00164                                         G->VOverZ[0]   *=  G->OneOverZ[0];
00165                                         G->UOverZ[1]   *=  G->OneOverZ[1];
00166                                         G->VOverZ[1]   *=  G->OneOverZ[1];
00167                                         G->UOverZ[2]   *=  G->OneOverZ[2];
00168                                         G->VOverZ[2]   *=  G->OneOverZ[2];
00169                                 }
00170                 
00171 
00172                         d02 = G->UOverZ[0] - G->UOverZ[2];
00173                         d12 = G->UOverZ[1] - G->UOverZ[2];
00174                         G->FdUOverZdX   = OneOverdX *  ((d12 * Height02) - (d02 * Height12));
00175                         G->dUOverZdY   = OneOverdY *  ((d12 * Width02 ) - (d02 * Width12 ));
00176 
00177                         d02 = G->VOverZ[0] - G->VOverZ[2];
00178                         d12 = G->VOverZ[1] - G->VOverZ[2];
00179                         G->FdVOverZdX   = OneOverdX *  ((d12 * Height02) - (d02 * Height12));
00180                         G->dVOverZdY   = OneOverdY *  ((d12 * Width02 ) - (d02 * Width12));
00181 
00182                         G->dUOverZdX   =  FXFL_OZ(G->FdUOverZdX);
00183                         G->dVOverZdX   =  FXFL_OZ(G->FdVOverZdX);
00184                 }
00185                                         
00186 
00187         if (Triangle.ROPFlags & LSHADE)
00188                 {
00189                         // can clamp these things higher to remove more small negative overruns.  
00190                         d02 = (pVertices[0].r) - (pVertices[2].r);
00191                         d12 = (pVertices[1].r) - (pVertices[2].r);
00192                         G->FdRdX = OneOverdX * ((d12 * Height02) - (d02 * Height12));
00193                         G->dRdY  = OneOverdY * ((d12 * Width02) - (d02 * Width12));
00194 
00195                         d02 = (pVertices[0].g) - (pVertices[2].g);
00196                         d12 = (pVertices[1].g) - (pVertices[2].g);
00197                         G->FdGdX = OneOverdX * ((d12 * Height02) - (d02 * Height12));
00198                         G->dGdY  = OneOverdY * ((d12 * Width02) - (d02 * Width12));
00199 
00200                         d02 = (pVertices[0].b) - (pVertices[2].b);
00201                         d12 = (pVertices[1].b) - (pVertices[2].b);
00202                         G->FdBdX = OneOverdX * ((d12 * Height02) - (d02 * Height12));
00203                         G->dBdY  = OneOverdY * ((d12 * Width02) - (d02 * Width12));
00204 
00205                         G->dRdX = FXFL_RGB(G->FdRdX);
00206                         G->dGdX = FXFL_RGB(G->FdGdX);
00207                         G->dBdX = FXFL_RGB(G->FdBdX);
00208                 }
00209         
00210         if (!G->Affine)
00211                 {
00212                         geFloat ChangeIndicator = (geFloat)fabs(G->FdOneOverZdX) + (geFloat)fabs(G->dOneOverZdY);
00213 
00214                         if (Triangle.ROPFlags & LMAP) 
00215                                 {
00216                                         // can maybe infer from the lightmap density what's best to do here.
00217                                         G->SubSpanWidth = 16;
00218                                         G->SubSpanShift  = 4;
00219                                 }
00220                         else
00221                                 {
00222                                         if ( ChangeIndicator < 0.0005f) 
00223                                                 {
00224                                                         G->SubSpanWidth = 128;
00225                                                         G->SubSpanShift  = 7;
00226                                                 }
00227                                         else if ( ChangeIndicator < 0.001f) 
00228                                                 {
00229                                                         G->SubSpanWidth = 64;
00230                                                         G->SubSpanShift  = 6;
00231                                                 }
00232                                         else if ( ChangeIndicator < 0.005f)
00233                                                 {
00234                                                         G->SubSpanWidth = 32;
00235                                                         G->SubSpanShift  = 5;
00236                                                 }
00237                                         else
00238                                                 {
00239                                                         G->SubSpanWidth = 16;
00240                                                         G->SubSpanShift  = 4;
00241                                                 }
00242                                 }
00243                 }
00244         else
00245                 {
00246                         G->dOneOverZdX = OOZ_FXP_TO_16_16(G->dOneOverZdX) * Z_FXP_TO_INT(G->ZScale);
00247                         G->dUOverZdX   = OZ_FXP_TO_16_16 (G->dUOverZdX);
00248                         G->dVOverZdX   = OZ_FXP_TO_16_16 (G->dVOverZdX);
00249                 }
00250 
00251         return GE_TRUE;
00252 }


Variable Documentation

int32 A
 

Definition at line 314 of file triangle.h.

Referenced by BlitData_DePalettize(), BlitData_FromSeparateAlpha(), BlitData_Raw(), BlitData_ToSeparateAlpha(), Compose_1555(), Compose_32abgr(), Compose_32argb(), Compose_32bgra(), Compose_32rgba(), Compose_4444(), createOctTree(), Decompose_1555(), Decompose_24bgr(), Decompose_24rgb(), Decompose_32abgr(), Decompose_32argb(), Decompose_32bgra(), Decompose_32bgrx(), Decompose_32rgba(), Decompose_32rgbx(), Decompose_32xbgr(), Decompose_32xrgb(), Decompose_4444(), Decompose_555bgr(), Decompose_555rgb(), Decompose_565bgr(), Decompose_565rgb(), Decompose_8bitGray(), ElectricFx_InitPalette(), geActor_AnimationCue(), geActor_AnimationNudge(), geActor_AnimationRemoveLastCue(), geActor_AnimationStep(), geActor_AnimationStepBoneOptimized(), geActor_AnimationTestStep(), geActor_AnimationTestStepBoneOptimized(), geActor_BlendPose(), geActor_ClearPose(), geActor_Create(), geActor_DefCreateRef(), geActor_DefGetFileContext(), geActor_DefIsValid(), geActor_Destroy(), geActor_Detach(), geActor_GetActorDef(), geActor_GetAlpha(), geActor_GetAnimationEvent(), geActor_GetBoneAttachment(), geActor_GetBoneBoundingBox(), geActor_GetBoneBoundingBoxByIndex(), geActor_GetBoneCount(), geActor_GetBoneExtBox(), geActor_GetBoneExtBoxByIndex(), geActor_GetBoneIndex(), geActor_GetBoneTransform(), geActor_GetBoneTransformByIndex(), geActor_GetDynamicExtBox(), geActor_GetEnvironOptions(), geActor_GetExtBox(), geActor_GetMaterial(), geActor_GetMaterialCount(), geActor_GetNonWorldExtBox(), geActor_GetPosition(), geActor_GetRenderHintExtBox(), geActor_GetUserData(), geActor_IsAnimationCueDead(), geActor_IsValid(), geActor_KillCue(), geActor_Render(), geActor_RenderPrep(), geActor_RenderThroughFrustum(), geActor_SetAlpha(), geActor_SetBlendingType(), geActor_SetBoneAttachment(), geActor_SetEnvironOptions(), geActor_SetExtBox(), geActor_SetLightingOptions(), geActor_SetMaterial(), geActor_SetPose(), geActor_SetRenderHintExtBox(), geActor_SetScale(), geActor_SetShadow(), geActor_SetStaticLightingOptions(), geActor_SetUserData(), geBitmap_ChooseDriverFormat(), geBitmap_GammaCorrect_Data(), geBitmap_GetAverageColor(), geBitmap_Palette_BlitData(), geBitmap_Palette_GetEntryColor(), geBitmap_Palette_SetEntryColor(), geBitmapUtil_CompareBitmaps(), geBitmapUtil_SetColor(), gePixelFormat_ComposePixel(), gePixelFormat_ConvertPixel(), gePixelFormat_DecomposePixel(), gePixelFormat_GetColor(), gePixelFormat_PutColor(), geQuaternion_FromMatrix(), Get_1555(), Get_24bgr(), Get_24rgb(), Get_32abgr(), Get_32argb(), Get_32bgra(), Get_32bgrx(), Get_32rgba(), Get_32rgbx(), Get_32xbgr(), Get_32xrgb(), Get_4444(), Get_555bgr(), Get_555rgb(), Get_565bgr(), Get_565rgb(), Get_8bitGray(), geTKArray_BSearch(), geTKArray_Create(), geTKArray_CreateEmpty(), geTKArray_CreateFromBinaryFile(), geTKArray_DeleteElement(), geTKArray_Element(), geTKArray_ElementSize(), geTKArray_ElementTime(), geTKArray_Insert(), geTKArray_NumElements(), paletteOptimize(), palettizePlane(), Particles_InitPalette(), Particles_MoveParticles(), PhysicsObject_Control(), PixelRGBA_FireColor(), PixelRGBA_OilColor(), PixelRGBA_OpaqueFireColor(), PixelRGBA_SteamColor(), Put_1555(), Put_32abgr(), Put_32argb(), Put_32bgra(), Put_32rgba(), Put_4444(), Smoke_InitPalette(), TRaster_Rasterize(), and while().

int32 B
 

Definition at line 312 of file triangle.h.

Referenced by AddBoneLight(), addHash(), addOctNode(), BlitData_DePalettize(), BlitData_FromSeparateAlpha(), BlitData_Raw(), BlitData_ToSeparateAlpha(), closestPalInit(), Compose_1555(), Compose_24bgr(), Compose_24rgb(), Compose_32abgr(), Compose_32argb(), Compose_32bgra(), Compose_32bgrx(), Compose_32rgba(), Compose_32rgbx(), Compose_32xbgr(), Compose_32xrgb(), Compose_4444(), Compose_555bgr(), Compose_555rgb(), Compose_565bgr(), Compose_565rgb(), Compose_8bitGray(), computeOctRGBs(), createOctTree(), Decompose_1555(), Decompose_24bgr(), Decompose_24rgb(), Decompose_32abgr(), Decompose_32argb(), Decompose_32bgra(), Decompose_32bgrx(), Decompose_32rgba(), Decompose_32rgbx(), Decompose_32xbgr(), Decompose_32xrgb(), Decompose_4444(), Decompose_555bgr(), Decompose_555rgb(), Decompose_565bgr(), Decompose_565rgb(), Decompose_8bitGray(), DrawScanLineGouraudNoZ_Asm555X86FPU(), DrawScanLineGouraudNoZ_AsmX86FPU(), DrawScanLineGouraudNoZBufferZWrite_Asm555X86FPU(), DrawScanLineGouraudNoZBufferZWrite_AsmX86FPU(), DrawScanLineGouraudNoZBufferZWriteTrans_Asm555X86FPU(), DrawScanLineGouraudNoZBufferZWriteTrans_AsmX86FPU(), DrawScanLineGouraudNoZTrans_Asm555X86FPU(), DrawScanLineGouraudNoZTrans_AsmX86FPU(), DrawScanLineGouraudZBuffer_Asm555X86FPU(), DrawScanLineGouraudZBuffer_AsmX86FPU(), DrawScanLineGouraudZBufferNoZWrite_Asm555X86FPU(), DrawScanLineGouraudZBufferNoZWrite_AsmX86FPU(), DrawScanLineGouraudZBufferNoZWriteTrans_Asm555X86FPU(), DrawScanLineGouraudZBufferNoZWriteTrans_AsmX86FPU(), DrawScanLineGouraudZBufferTrans_Asm555X86FPU(), DrawScanLineGouraudZBufferTrans_AsmX86FPU(), DrawSpan16_AsmGouraudX86FPU(), DrawSpan16_AsmGouraudZBuffer555X86FPU(), DrawSpan16_AsmGouraudZBufferTrans555X86FPU(), DrawSpan16_AsmGouraudZBufferTransX86FPU(), DrawSpan16_AsmGouraudZBufferX86FPU(), DrawSpan16_AsmGouraudZWrite555X86FPU(), DrawSpan16_AsmGouraudZWriteX86FPU(), DrawSpan16_AsmLit555X86FPU(), DrawSpan16_AsmLitX86FPU(), DrawSpan16_AsmLitZBuffer555X86FPU(), DrawSpan16_AsmLitZBufferX86FPU(), DrawSpan16_AsmLitZWrite555X86FPU(), DrawSpan16_AsmLitZWriteX86FPU(), ElectricFx_InitPalette(), FillLMapSurface(), findClosest(), findClosestPal(), findClosestPalBrute(), geBitmap_ChooseDriverFormat(), geBitmap_GammaCorrect_Data(), geBitmap_GammaCorrect_Data_4444_ARGB(), geBitmap_GammaCorrect_Data_565_RGB(), geBitmap_GetAverageColor(), geBitmap_Palette_BlitData(), geBitmap_Palette_GetEntryColor(), geBitmap_Palette_SetEntryColor(), geBitmap_UpdateMips_Data(), geBitmapUtil_CompareBitmaps(), geBitmapUtil_SetColor(), geBody_AddBone(), geBody_AddFace(), geBody_AddMaterial(), geBody_AddNormal(), geBody_AddSkinVertex(), geBody_AddToFaces(), geBody_ChangeVertexIndex(), geBody_ComputeLevelsOfDetail(), geBody_Create(), geBody_CreateFromFile(), geBody_CreateNull(), geBody_DestroyPossiblyIncompleteBody(), geBody_GetBone(), geBody_GetBoneByName(), geBody_GetBoneCount(), geBody_GetBoneNameChecksum(), geBody_GetBoundingBox(), geBody_GetGeometryStats(), geBody_GetMaterial(), geBody_GetMaterialCount(), geBody_IsValid(), geBody_ReadGeometry(), geBody_SanityCheck(), geBody_SetBoundingBox(), geBody_SetMaterial(), geBody_SortSkinVertices(), geBody_SwapVertexIndices(), geBody_WriteGeometry(), geBody_WriteToFile(), geBodyInst_Create(), geBodyInst_GetGeometry(), geBodyInst_GetGeometryPrep(), geExtBox_ContainsPoint(), geExtBox_ExtendToEnclose(), geExtBox_GetScaling(), geExtBox_GetTranslation(), geExtBox_IsValid(), geExtBox_RayCollision(), geExtBox_Scale(), geExtBox_Set(), geExtBox_SetScaling(), geExtBox_SetToPoint(), geExtBox_SetTranslation(), geExtBox_Translate(), geExtBox_XFaceDist(), geExtBox_YFaceDist(), geExtBox_ZFaceDist(), geFont_DrawUsingDIB(), gePixelFormat_ComposePixel(), gePixelFormat_ConvertPixel(), gePixelFormat_DecomposePixel(), gePixelFormat_GetColor(), gePixelFormat_PutColor(), gePuppet_Create(), gePuppet_FetchTextures(), geStrBlock_Append(), geStrBlock_BlockSize(), geStrBlock_Delete(), Get_1555(), Get_24bgr(), Get_24rgb(), Get_32abgr(), Get_32argb(), Get_32bgra(), Get_32bgrx(), Get_32rgba(), Get_32rgbx(), Get_32xbgr(), Get_32xrgb(), Get_4444(), Get_555bgr(), Get_555rgb(), Get_565bgr(), Get_565rgb(), Get_8bitGray(), geVec3d_DistanceBetween(), LoadLMapFromSystem(), MyRGB(), paletteOptimize(), palettizePlane(), Particles_InitPalette(), PixelRGBA_FireColor(), PixelRGBA_OilColor(), PixelRGBA_OpaqueFireColor(), PixelRGBA_SteamColor(), PlasmaAnimator_CreatePalette(), Put_1555(), Put_24bgr(), Put_24rgb(), Put_32abgr(), Put_32argb(), Put_32bgra(), Put_32bgrx(), Put_32rgba(), Put_32rgbx(), Put_32xbgr(), Put_32xrgb(), Put_4444(), Put_555bgr(), Put_555rgb(), Put_565bgr(), Put_565rgb(), Put_8bitGray(), readLeavesToPal(), RGBb_to_YUVb(), RGBb_to_YUVb_line(), RGBb_to_YUVi(), RGBi_to_YUVi(), Smoke_InitPalette(), Trace_ActorCollide(), while(), and YUVi_to_RGBi().

int32 G
 

Definition at line 312 of file triangle.h.

Referenced by AddBoneLight(), addHash(), addOctNode(), BlitData_DePalettize(), BlitData_FromSeparateAlpha(), BlitData_Raw(), BlitData_ToSeparateAlpha(), closestPalInit(), Compose_1555(), Compose_24bgr(), Compose_24rgb(), Compose_32abgr(), Compose_32argb(), Compose_32bgra(), Compose_32bgrx(), Compose_32rgba(), Compose_32rgbx(), Compose_32xbgr(), Compose_32xrgb(), Compose_4444(), Compose_555bgr(), Compose_555rgb(), Compose_565bgr(), Compose_565rgb(), Compose_8bitGray(), computeOctRGBs(), createOctTree(), Decompose_1555(), Decompose_24bgr(), Decompose_24rgb(), Decompose_32abgr(), Decompose_32argb(), Decompose_32bgra(), Decompose_32bgrx(), Decompose_32rgba(), Decompose_32rgbx(), Decompose_32xbgr(), Decompose_32xrgb(), Decompose_4444(), Decompose_555bgr(), Decompose_555rgb(), Decompose_565bgr(), Decompose_565rgb(), Decompose_8bitGray(), DrawScanLineGouraudNoZ_Asm555X86FPU(), DrawScanLineGouraudNoZ_AsmX86FPU(), DrawScanLineGouraudNoZBufferZWrite_Asm555X86FPU(), DrawScanLineGouraudNoZBufferZWrite_AsmX86FPU(), DrawScanLineGouraudNoZBufferZWriteTrans_Asm555X86FPU(), DrawScanLineGouraudNoZBufferZWriteTrans_AsmX86FPU(), DrawScanLineGouraudNoZTrans_Asm555X86FPU(), DrawScanLineGouraudNoZTrans_AsmX86FPU(), DrawScanLineGouraudZBuffer_Asm555X86FPU(), DrawScanLineGouraudZBuffer_AsmX86FPU(), DrawScanLineGouraudZBufferNoZWrite_Asm555X86FPU(), DrawScanLineGouraudZBufferNoZWrite_AsmX86FPU(), DrawScanLineGouraudZBufferNoZWriteTrans_Asm555X86FPU(), DrawScanLineGouraudZBufferNoZWriteTrans_AsmX86FPU(), DrawScanLineGouraudZBufferTrans_Asm555X86FPU(), DrawScanLineGouraudZBufferTrans_AsmX86FPU(), DrawSpan16_AsmGouraudX86FPU(), DrawSpan16_AsmGouraudZBuffer555X86FPU(), DrawSpan16_AsmGouraudZBufferTrans555X86FPU(), DrawSpan16_AsmGouraudZBufferTransX86FPU(), DrawSpan16_AsmGouraudZBufferX86FPU(), DrawSpan16_AsmGouraudZWrite555X86FPU(), DrawSpan16_AsmGouraudZWriteX86FPU(), DrawSpan16_AsmLit555X86FPU(), DrawSpan16_AsmLitX86FPU(), DrawSpan16_AsmLitZBuffer555X86FPU(), DrawSpan16_AsmLitZBufferX86FPU(), DrawSpan16_AsmLitZWrite555X86FPU(), DrawSpan16_AsmLitZWriteX86FPU(), ElectricFx_InitPalette(), FillLMapSurface(), findClosest(), findClosestPal(), findClosestPalBrute(), geBitmap_ChooseDriverFormat(), geBitmap_GammaCorrect_Data(), geBitmap_GammaCorrect_Data_4444_ARGB(), geBitmap_GammaCorrect_Data_565_RGB(), geBitmap_GetAverageColor(), geBitmap_Palette_BlitData(), geBitmap_Palette_GetEntryColor(), geBitmap_Palette_SetEntryColor(), geBitmap_UpdateMips_Data(), geBitmapUtil_CompareBitmaps(), geBitmapUtil_SetColor(), geBodyInst_Create(), geBodyInst_Destroy(), geBodyInst_GetGeometry(), geBodyInst_GetGeometryPrep(), geFont_DrawUsingDIB(), gePhysicsObject_Integrate(), gePixelFormat_ComposePixel(), gePixelFormat_ConvertPixel(), gePixelFormat_DecomposePixel(), gePixelFormat_GetColor(), gePixelFormat_PutColor(), gePuppet_DrawShadow(), gePuppet_Render(), gePuppet_RenderThroughFrustum(), Get_1555(), Get_24bgr(), Get_24rgb(), Get_32abgr(), Get_32argb(), Get_32bgra(), Get_32bgrx(), Get_32rgba(), Get_32rgbx(), Get_32xbgr(), Get_32xrgb(), Get_4444(), Get_555bgr(), Get_555rgb(), Get_565bgr(), Get_565rgb(), Get_8bitGray(), LoadLMapFromSystem(), MyRGB(), NetMgr_SendClientMessage(), NetMgr_SendServerMessage(), paletteOptimize(), palettizePlane(), Particles_InitPalette(), PixelRGBA_FireColor(), PixelRGBA_OilColor(), PixelRGBA_OpaqueFireColor(), PixelRGBA_SteamColor(), PlasmaAnimator_CreatePalette(), Put_1555(), Put_24bgr(), Put_24rgb(), Put_32abgr(), Put_32argb(), Put_32bgra(), Put_32bgrx(), Put_32rgba(), Put_32rgbx(), Put_32xbgr(), Put_32xrgb(), Put_4444(), Put_555bgr(), Put_555rgb(), Put_565bgr(), Put_565rgb(), Put_8bitGray(), readLeavesToPal(), RGBb_to_YUVb(), RGBb_to_YUVb_line(), RGBb_to_YUVi(), RGBi_to_YUVi(), SendAllClientsMessage(), Smoke_InitPalette(), Triangle_GradientsCompute(), while(), and YUVi_to_RGBi().

int32 OneMinusA
 

Definition at line 314 of file triangle.h.

Referenced by TRaster_Rasterize(), and while().

int32 OneOverZ
 

Definition at line 311 of file triangle.h.

Referenced by geCamera_ProjectZ().

int32 R
 

Definition at line 312 of file triangle.h.

Referenced by AddBoneLight(), addHash(), addOctNode(), BlitData_DePalettize(), BlitData_FromSeparateAlpha(), BlitData_Raw(), BlitData_ToSeparateAlpha(), closestPalInit(), Compose_1555(), Compose_24bgr(), Compose_24rgb(), Compose_32abgr(), Compose_32argb(), Compose_32bgra(), Compose_32bgrx(), Compose_32rgba(), Compose_32rgbx(), Compose_32xbgr(), Compose_32xrgb(), Compose_4444(), Compose_555bgr(), Compose_555rgb(), Compose_565bgr(), Compose_565rgb(), Compose_8bitGray(), computeOctRGBs(), createOctTree(), Decompose_1555(), Decompose_24bgr(), Decompose_24rgb(), Decompose_32abgr(), Decompose_32argb(), Decompose_32bgra(), Decompose_32bgrx(), Decompose_32rgba(), Decompose_32rgbx(), Decompose_32xbgr(), Decompose_32xrgb(), Decompose_4444(), Decompose_555bgr(), Decompose_555rgb(), Decompose_565bgr(), Decompose_565rgb(), Decompose_8bitGray(), DoSplashScreen(), DrawScanLineGouraudNoZ_Asm555X86FPU(), DrawScanLineGouraudNoZ_AsmX86FPU(), DrawScanLineGouraudNoZBufferZWrite_Asm555X86FPU(), DrawScanLineGouraudNoZBufferZWrite_AsmX86FPU(), DrawScanLineGouraudNoZBufferZWriteTrans_Asm555X86FPU(), DrawScanLineGouraudNoZBufferZWriteTrans_AsmX86FPU(), DrawScanLineGouraudNoZTrans_Asm555X86FPU(), DrawScanLineGouraudNoZTrans_AsmX86FPU(), DrawScanLineGouraudZBuffer_Asm555X86FPU(), DrawScanLineGouraudZBuffer_AsmX86FPU(), DrawScanLineGouraudZBufferNoZWrite_Asm555X86FPU(), DrawScanLineGouraudZBufferNoZWrite_AsmX86FPU(), DrawScanLineGouraudZBufferNoZWriteTrans_Asm555X86FPU(), DrawScanLineGouraudZBufferNoZWriteTrans_AsmX86FPU(), DrawScanLineGouraudZBufferTrans_Asm555X86FPU(), DrawScanLineGouraudZBufferTrans_AsmX86FPU(), DrawSpan16_AsmGouraudX86FPU(), DrawSpan16_AsmGouraudZBuffer555X86FPU(), DrawSpan16_AsmGouraudZBufferTrans555X86FPU(), DrawSpan16_AsmGouraudZBufferTransX86FPU(), DrawSpan16_AsmGouraudZBufferX86FPU(), DrawSpan16_AsmGouraudZWrite555X86FPU(), DrawSpan16_AsmGouraudZWriteX86FPU(), DrawSpan16_AsmLit555X86FPU(), DrawSpan16_AsmLitX86FPU(), DrawSpan16_AsmLitZBuffer555X86FPU(), DrawSpan16_AsmLitZBufferX86FPU(), DrawSpan16_AsmLitZWrite555X86FPU(), DrawSpan16_AsmLitZWriteX86FPU(), ElectricFx_InitPalette(), FillLMapSurface(), findClosest(), findClosestPal(), findClosestPalBrute(), geBitmap_ChooseDriverFormat(), geBitmap_GammaCorrect_Data(), geBitmap_GammaCorrect_Data_4444_ARGB(), geBitmap_GammaCorrect_Data_565_RGB(), geBitmap_GetAverageColor(), geBitmap_Palette_BlitData(), geBitmap_Palette_GetEntryColor(), geBitmap_Palette_SetEntryColor(), geBitmap_UpdateMips_Data(), geBitmapUtil_CompareBitmaps(), geBitmapUtil_SetColor(), geFont_DrawUsingDIB(), geMotion_GetTransform(), geMotion_SampleChannels(), geMotion_SampleChannelsNamed(), gePath_WriteToBinaryFile(), gePhysicsObject_ApplyGlobalFrameImpulse(), gePhysicsObject_GetInertiaTensorInPhysicsSpace(), gePhysicsObject_GetInertiaTensorInverseInPhysicsSpace(), gePhysicsObject_Integrate(), gePixelFormat_ComposePixel(), gePixelFormat_ConvertPixel(), gePixelFormat_DecomposePixel(), gePixelFormat_GetColor(), gePixelFormat_PutColor(), Get_1555(), Get_24bgr(), Get_24rgb(), Get_32abgr(), Get_32argb(), Get_32bgra(), Get_32bgrx(), Get_32rgba(), Get_32rgbx(), Get_32xbgr(), Get_32xrgb(), Get_4444(), Get_555bgr(), Get_555rgb(), Get_565bgr(), Get_565rgb(), Get_8bitGray(), geXForm3d_RotateX(), geXForm3d_RotateY(), geXForm3d_RotateZ(), LoadLMapFromSystem(), MyRGB(), paletteOptimize(), palettizePlane(), Particles_InitPalette(), PixelRGBA_FireColor(), PixelRGBA_OilColor(), PixelRGBA_OpaqueFireColor(), PixelRGBA_SteamColor(), PlasmaAnimator_CreatePalette(), Put_1555(), Put_24bgr(), Put_24rgb(), Put_32abgr(), Put_32argb(), Put_32bgra(), Put_32bgrx(), Put_32rgba(), Put_32rgbx(), Put_32xbgr(), Put_32xrgb(), Put_4444(), Put_555bgr(), Put_555rgb(), Put_565bgr(), Put_565rgb(), Put_8bitGray(), readLeavesToPal(), RGBb_to_YUVb(), RGBb_to_YUVb_line(), RGBb_to_YUVi(), RGBi_to_YUVi(), Smoke_InitPalette(), while(), and YUVi_to_RGBi().

Triangle_Triangle Triangle
 

Definition at line 316 of file triangle.h.

Referenced by Span_LightMapSample(), TRaster_LightMapSetup(), TRaster_Rasterize(), TRaster_Setup(), Triangle_EdgeCompute(), and Triangle_GradientsCompute().

int32 UOverZ
 

Definition at line 311 of file triangle.h.

int32 VOverZ
 

Definition at line 311 of file triangle.h.


Generated on Tue Sep 30 12:38:20 2003 for GTestAndEngine by doxygen 1.3.2