## 3dfx

### Members

#### inner FX_HEIGHT
`doc/internal.js`, `line 879`

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `voodoo` | number | graphics height

#### inner FX_WIDTH
`doc/internal.js`, `line 875`

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `voodoo` | number | graphics width

#### inner GR_ASPECT
`jsboot/3dfx.js`, `line 384`

  typedef FxI32 GrAspectRatio_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `LOG2_8x1` | number |
  `LOG2_4x1` | number |
  `LOG2_2x1` | number |
  `LOG2_1x1` | number |
  `LOG2_1x2` | number |
  `LOG2_1x4` | number |
  `LOG2_1x8` | number |

#### inner GR_BLEND
`jsboot/3dfx.js`, `line 183`

  typedef FxI32 GrAlphaBlendFnc_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `SRC_ALPHA` | number |
  `SRC_COLOR` | number |
  `DST_COLOR` | number |
  `DST_ALPHA` | number |
  `ONE` | number |
  `ONE_MINUS_SRC_ALPHA` | number |
  `ONE_MINUS_SRC_COLOR` | number |
  `ONE_MINUS_DST_COLOR` | number |
  `ONE_MINUS_DST_ALPHA` | number |
  `RESERVED_8` | number |
  `RESERVED_9` | number |
  `RESERVED_A` | number |
  `RESERVED_B` | number |
  `RESERVED_C` | number |
  `RESERVED_D` | number |
  `RESERVED_E` | number |
  `ALPHA_SATURATE` | number |
  `PREFOG_COLOR` | number |

#### inner GR_BUFFER
`jsboot/3dfx.js`, `line 501`

  typedef FxI32 GrBuffer_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `FRONTBUFFER` | number |
  `BACKBUFFER` | number |
  `AUXBUFFER` | number |
  `DEPTHBUFFER` | number |
  `ALPHABUFFER` | number |
  `TRIPLEBUFFER` | number |

#### inner GR_CMP
`jsboot/3dfx.js`, `line 284`

  typedef FxI32 GrCmpFnc_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `NEVER` | number |
  `LESS` | number |
  `EQUAL` | number |
  `LEQUAL` | number |
  `GREATER` | number |
  `NOTEQUAL` | number |
  `GEQUAL` | number |
  `ALWAYS` | number |

#### inner GR_COLORCOMBINE
`jsboot/3dfx.js`, `line 531`

  typedef FxI32 GrColorCombineFnc_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `CCRGB` | number |
  `ITRGB` | number |
  `ITRGB_DELTA0` | number |
  `DECAL_TEXTURE` | number |
  `TEXTURE_TIMES_CCRGB` | number |
  `TEXTURE_TIMES_ITRGB` | number |
  `TEXTURE_TIMES_ITRGB_DELTA0` | number |
  `TEXTURE_TIMES_ITRGB_ADD_ALPHA` | number |
  `TEXTURE_TIMES_ALPHA` | number |
  `TEXTURE_TIMES_ALPHA_ADD_ITRGB` | number |
  `TEXTURE_ADD_ITRGB` | number |
  `TEXTURE_SUB_ITRGB` | number |
  `CCRGB_BLEND_ITRGB_ON_TEXALPHA` | number |
  `DIFF_SPEC_A` | number |
  `DIFF_SPEC_B` | number |
  `ONE` | number |

#### inner GR_COMBINE_FACTOR
`jsboot/3dfx.js`, `line 114`

  typedef FxI32 GrCombineFactor_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `NONE` | number |
  `LOCAL` | number |
  `OTHER_ALPHA` | number |
  `LOCAL_ALPHA` | number |
  `TEXTURE_ALPHA` | number |
  `TEXTURE_RGB` | number |
  `DETAIL_FACTOR` | number |
  `LOD_FRACTION` | number |
  `ONE` | number |
  `ONE_MINUS_LOCAL` | number |
  `ONE_MINUS_OTHER_ALPHA` | number |
  `ONE_MINUS_LOCAL_ALPHA` | number |
  `ONE_MINUS_TEXTURE_ALPHA` | number |
  `ONE_MINUS_DETAIL_FACTOR` | number |
  `ONE_MINUS_LOD_FRACTION` | number |

#### inner GR_COMBINE_FUNCTION
`jsboot/3dfx.js`, `line 77`

  typedef FxI32 GrCombineFunction_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `NONE` | number |
  `LOCAL` | number |
  `LOCAL_ALPHA` | number |
  `SCALE_OTHER` | number |
  `BLEND_OTHER` | number |
  `SCALE_OTHER_ADD_LOCAL` | number |
  `SCALE_OTHER_ADD_LOCAL_ALPHA` | number |
  `SCALE_OTHER_MINUS_LOCAL` | number |
  `SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL` | number |
  `BLEND` | number |
  `SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL_ALPHA` | number |
  `SCALE_MINUS_LOCAL_ADD_LOCAL` | number |
  `BLEND_LOCAL` | number |
  `SCALE_MINUS_LOCAL_ADD_LOCAL_ALPHA` | number |

#### inner GR_COMBINE_LOCAL
`jsboot/3dfx.js`, `line 140`

  typedef FxI32 GrCombineLocal_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ITERATED` | number |
  `CONSTANT` | number |
  `NONE` | number |
  `DEPTH` | number |

#### inner GR_COMBINE_OTHER
`jsboot/3dfx.js`, `line 154`

  typedef FxI32 GrCombineOther_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ITERATED` | number |
  `TEXTURE` | number |
  `CONSTANT` | number |
  `NONE` | number |

#### inner GR_CULL
`jsboot/3dfx.js`, `line 53`

  typedef FxI32 GrCullMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `NEGATIVE` | number |
  `POSITIVE` | number |

#### inner GR_DEPTHBUFFER
`jsboot/3dfx.js`, `line 265`

  typedef FxI32 GrDepthBufferMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `ZBUFFER` | number |
  `WBUFFER` | number |
  `ZBUFFER_COMPARE_TO_BIAS` | number |
  `WBUFFER_COMPARE_TO_BIAS` | number |

#### inner GR_DITHER
`jsboot/3dfx.js`, `line 251`

  typedef FxI32 GrDitherMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `D2x2` | number |
  `D4x4` | number |

#### inner GR_ENABLE
`jsboot/3dfx.js`, `line 237`

  typedef FxU32 GrEnableMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `AA_ORDERED` | number |
  `ALLOW_MIPMAP_DITHER` | number |
  `PASSTHRU` | number |
  `SHAMELESS_PLUG` | number |
  `VIDEO_SMOOTHING` | number |

#### inner GR_FOG
`jsboot/3dfx.js`, `line 305`

  typedef FxI32 GrFogMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `WITH_TABLE_ON_FOGCOORD_EXT` | number |
  `WITH_TABLE_ON_Q` | number |
  `WITH_TABLE_ON_W` | number |
  `WITH_ITERATED_Z` | number |
  `MULT2` | number |
  `ADD2` | number |

#### inner GR_LOD
`jsboot/3dfx.js`, `line 406`

  typedef FxI32 GrLOD_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `LOG2_256` | number |
  `LOG2_128` | number |
  `LOG2_64` | number |
  `LOG2_32` | number |
  `LOG2_16` | number |
  `LOG2_8` | number |
  `LOG2_4` | number |
  `LOG2_2` | number |
  `LOG2_1` | number |

#### inner GR_MIPMAP
`jsboot/3dfx.js`, `line 355`

  typedef FxI32 GrMipMapMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `NEAREST` | number |
  `NEAREST_DITHER` | number |

#### inner GR_MIPMAPLEVELMASK
`jsboot/3dfx.js`, `line 486`

  GR_MIPMAPLEVELMASK

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `EVEN` | number |
  `ODD` | number |
  `BOTH` | number |

#### inner GR_ORIGIN
`jsboot/3dfx.js`, `line 368`

  typedef FxI32 GrOriginLocation_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `UPPER_LEFT` | number |
  `LOWER_LEFT` | number |
  `ANY` | number |

#### inner GR_PARAM
`jsboot/3dfx.js`, `line 29`

  Parameters for vertex definition.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `XY` | number |
  `ZW` | number |
  `Q` | number |
  `EXT` | number |
  `A` | number |
  `RGB` | number |
  `PARG` | number |
  `ST0` | number |
  `ST1` | number |
  `ST2` | number |
  `Q0` | number |
  `Q1` | number |
  `Q2` | number |

#### inner GR_TEXFMT
`jsboot/3dfx.js`, `line 442`

  typedef FxI32 GrTextureFormat_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `BIT8` | number |
  `RGB_332` | number |
  `YIQ_422` | number |
  `ALPHA_8` | number |
  `INTENSITY_8` | number |
  `ALPHA_INTENSITY_44` | number |
  `P_8` | number |
  `RSVD0` | number |
  `P_8_6666` | number |
  `P_8_6666_EXT` | number |
  `RSVD1` | number |
  `BIT16` | number |
  `ARGB_8332` | number |
  `AYIQ_8422` | number |
  `RGB_565` | number |
  `ARGB_1555` | number |
  `ARGB_4444` | number |
  `ALPHA_INTENSITY_88` | number |
  `AP_88` | number |
  `RSVD2` | number |
  `RSVD4` | number |

#### inner GR_TEXTABLE
`jsboot/3dfx.js`, `line 473`

  typedef FxU32 GrTexTable_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `NCC0` | number |
  `NCC1` | number |
  `PALETTE` | number |
  `PALETTE_6666_EXT` | number |

#### inner GR_TEXTURECLAMP
`jsboot/3dfx.js`, `line 343`

  typedef FxI32 GrTextureClampMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `WRAP` | number |
  `CLAMP` | number |
  `MIRROR_EXT` | number |

#### inner GR_TEXTUREFILTER
`jsboot/3dfx.js`, `line 332`

  typedef FxI32 GrTextureFilterMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `POINT_SAMPLED` | number |
  `BILINEAR` | number |

#### inner GR_TMU
`jsboot/3dfx.js`, `line 321`

  typedef FxI32 GrChipID_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `TMU0` | number |
  `TMU1` | number |
  `TMU2` | number |

#### inner GR_VERTEX
`jsboot/3dfx.js`, `line 217`

  grDrawVertexArray/grDrawVertexArrayContiguous primitive type

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `POINTS` | number |
  `LINE_STRIP` | number |
  `LINES` | number |
  `POLYGON` | number |
  `TRIANGLE_STRIP` | number |
  `TRIANGLE_FAN` | number |
  `TRIANGLES` | number |
  `TRIANGLE_STRIP_CONTINUE` | number |
  `TRIANGLE_FAN_CONTINUE` | number |

#### inner lastTexture
`jsboot/3dfx.js`, `line 557`

  TMU memory end address per TMU

#### inner nextTexture
`jsboot/3dfx.js`, `line 555`

  TMU memory start address/next address per TMU

#### inner TEXMEM_2MB_EDGE
`jsboot/3dfx.js`, `line 552`

  hard edge when assigning texture memory at 2MiB

### Methods

#### inner fxAADrawTriangle(a, b, c, b1, b2, b3)
`doc/internal.js`, `line 1054`

  draw an anti-aliased triangle

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Array.<number> | a vertex
  `b` | Array.<number> | a vertex
  `c` | Array.<number> | a vertex
  `b1` | boolean | anti alias AB edge
  `b2` | boolean | anti alias BC edge
  `b3` | boolean | anti alias CA edge

#### inner fxAlphaBlendFunction(rgb_sf, rgb_df, alpha_sf, alpha_df)
`doc/internal.js`, `line 986`

  specify the alpha blending function

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rgb_sf` | GR_BLEND | rgb source blending factor
  `rgb_df` | GR_BLEND | rgb destination blending factor
  `alpha_sf` | GR_BLEND | alpha source blending factor
  `alpha_df` | GR_BLEND | alpha destination blending factor

#### inner fxAlphaCombine(func, factor, local, other, invert)
`doc/internal.js`, `line 996`

  configure the alpha combine unit.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_COMBINE_FUNCTION | function
  `factor` | GR_COMBINE_FACTOR | scaling factor
  `local` | GR_COMBINE_LOCAL | local alpha
  `other` | GR_COMBINE_OTHER | other alpha
  `invert` | boolean | invert generated alpha.

#### inner fxAlphaControlsITRGBLighting(enable)
`doc/internal.js`, `line 1066`

  enables/disables alpha controlled lighting

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable` | boolean | enable/disable

#### inner fxAlphaTestFunction(func)
`doc/internal.js`, `line 1178`

  specify the alpha test function

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_CMP | the function

#### inner fxAlphaTestReferenceValue(value)
`doc/internal.js`, `line 1184`

  specify the alpha test reference value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | number | The new alpha test reference value.

#### inner FXBIT(i) → {number}
`jsboot/3dfx.js`, `line 11`

  set a bit.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `i` | number | bit to set.

  ##### Returns:

  number - number with given bit set.

#### inner fxBufferClear(color, alpha, depth)
`doc/internal.js`, `line 935`

  clear the buffers to the specified values

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | number | The color value used for clearing the draw buffer.
  `alpha` | number | The alpha value used for clearing the alpha buffer
  `depth` | number | An unsigned value used for clearing the depth buffer

#### inner fxBufferSwap(interval)
`doc/internal.js`, `line 927`

  exchange front and back buffers

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `interval` | number | The number of vertical retraces to wait before swapping the front and back buffers.

#### inner fxChromakeyMode(mode)
`doc/internal.js`, `line 1166`

  enable/disable hardware chroma-keying

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | boolean | enable/disable

#### inner fxChromakeyValue(val)
`doc/internal.js`, `line 1172`

  set the global chroma-key reference value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | number | The new chroma-key reference value.

#### inner fxClipWindow(minx, miny, maxx, maxy)
`doc/internal.js`, `line 944`

  set the size and location of the hardware clipping window

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `minx` | number | The lower x screen coordinate of the clipping window.
  `miny` | number | The lower y screen coordinate of the clipping window.
  `maxx` | number | The upper x screen coordinate of the clipping window.
  `maxy` | number | The upper y screen coordinate of the clipping window.

#### inner fxColorCombine(func, factor, local, other, invert)
`doc/internal.js`, `line 1006`

  configure the color combine unit.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_COMBINE_FUNCTION | function
  `factor` | GR_COMBINE_FACTOR | scaling factor
  `local` | GR_COMBINE_LOCAL | local alpha
  `other` | GR_COMBINE_OTHER | other alpha
  `invert` | boolean | invert generated alpha.

#### inner fxColorMask(rgb, alpha)
`doc/internal.js`, `line 1013`

  enable/disable writing into the color and alpha buffers

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rgb` | number | color mask
  `alpha` | number | alpha mask

#### inner fxConstantColorValue(color)
`doc/internal.js`, `line 971`

  set the global constant color

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | number | The new constant color.

#### inner fxCullMode(mode)
`doc/internal.js`, `line 977`

  set the cull mode.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_CULL | the noew mode.

#### inner fxDepthBiasLevel(level)
`doc/internal.js`, `line 1098`

  set the depth bias level

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `level` | number | th new level.

#### inner fxDepthBufferFunction(func)
`doc/internal.js`, `line 1092`

  specify the depth buffer comparison function

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_CMP | the new function

#### inner fxDepthBufferMode(mode)
`doc/internal.js`, `line 1086`

  set the depth buffering mode

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_DEPTHBUFFER | the mode

#### inner fxDepthMask(enable)
`doc/internal.js`, `line 1019`

  enable/disable writing into the depth buffer

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable` | boolean | enable/disable

#### inner fxDepthRange(near, far)
`doc/internal.js`, `line 1105`

  specify viewport depth range

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `near` | number | min range
  `far` | number | max range

#### inner fxDisable(val)
`doc/internal.js`, `line 1038`

  enable Glide operating modes

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | GR_ENABLE | one of GR_ENABLE.

#### inner fxDisableAllEffects()
`doc/internal.js`, `line 1043`

  disable all special effects in the graphics subsystem

#### inner fxDitherMode(mode)
`doc/internal.js`, `line 1060`

  set dither mode.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_DITHER | the new dither mode.

#### inner fxDrawLine(v1, v2)
`doc/internal.js`, `line 957`

  draw a one-pixel-wide arbitrarily oriented line

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v1` | Array.<number> | a vertex.
  `v2` | Array.<number> | a vertex.

#### inner fxDrawPoint(v1)
`doc/internal.js`, `line 950`

  draw a point

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v1` | Array.<number> | a vertex.

#### inner fxDrawTriangle(v1, v2, v3)
`doc/internal.js`, `line 965`

  draw a triangle

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v1` | Array.<number> | a vertex.
  `v2` | Array.<number> | a vertex.
  `v3` | Array.<number> | a vertex.

#### inner fxDrawVertexArray(mode, vertices)
`doc/internal.js`, `line 1026`

  draw a list of by-vertex vertices

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_VERTEX | vertex type
  `vertices` | Array.<Array.<number>> | array of vertices.

#### inner FxEmptyVertex() → {Array.<number>}
`jsboot/3dfx.js`, `line 600`

  create empty vertex.

  ##### Returns:

  Array.<number> - an empty vertex.

#### inner fxEnable(val)
`doc/internal.js`, `line 1032`

  enable Glide operating modes

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | GR_ENABLE | one of GR_ENABLE.

#### inner fxFinish()
`doc/internal.js`, `line 921`

  force completion of all outstanding graphics commands.

#### inner fxFlush()
`doc/internal.js`, `line 900`

  flush the graphics FIFO

#### inner fxFogColorValue(color)
`doc/internal.js`, `line 1126`

  set the global fog color

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | number | the new fog color

#### inner fxFogGenerateExp(density) → {Array.<number>}
`doc/internal.js`, `line 1145`

  generate an exponential fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `density` | number | The fog density, typically between 0.0 and 1.0.

  ##### Returns:

  Array.<number> - a fog table.

#### inner fxFogGenerateExp2(density) → {Array.<number>}
`doc/internal.js`, `line 1152`

  generate an exponential squared fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `density` | * | The fog density, typically between 0.0 and 1.0.

  ##### Returns:

  Array.<number> - a fog table.

#### inner fxFogGenerateLinear(near, far) → {Array.<number>}
`doc/internal.js`, `line 1160`

  generate a linear fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `near` | number | The eye-space w coordinate where minimum fog exists.
  `far` | number | The eye-space w coordinate where maximum fog exists.

  ##### Returns:

  Array.<number> - a fog table.

#### inner fxFogMode(mode)
`doc/internal.js`, `line 1120`

  enable/disable per-pixel fog blending operations

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_FOG | the new fog mode.

#### inner fxFogTable(table)
`doc/internal.js`, `line 1138`

  download a fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `table` | Array.<number> | a new table with at least fxGetFogTableEntries() entries

#### inner fxFogTableIndexToW(i)
`doc/internal.js`, `line 1132`

  convert a fog table index to a floating point eye-space w value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `i` | number | The fog table index, between 0 and GR_FOG_TABLE_SIZE.

#### inner fxGammaCorrectionRGB(r, g, b)
`doc/internal.js`, `line 1074`

  set up gamma correction tables

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `r` | number |
  `g` | * |
  `b` | * |

#### inner fxGetBitsDepth() → {number}
`doc/internal.js`, `line 1285`

  ##### Returns:

  number - The number of bits of depth (z or w) in the frame buffer.

#### inner fxGetFogTableEntries() → {number}
`doc/internal.js`, `line 1289`

  ##### Returns:

  number - The number of entries in the hardware fog table.

#### inner fxGetGammaTableEntries() → {number}
`doc/internal.js`, `line 1293`

  ##### Returns:

  number - The number of entries in the hardware gamma table. Returns FXFALSE if it is not possible to manipulate gamma (e.g. on a Macronix card, or in windowed mode).

#### inner fxGetMaxTextureAspectRatio() → {number}
`doc/internal.js`, `line 1317`

  ##### Returns:

  number - The logarithm base 2 of the maximum aspect ratio supported for power-of-two, mipmap-able textures (e.g. Voodoo Graphics returns 3).

#### inner fxGetMaxTextureSize() → {number}
`doc/internal.js`, `line 1313`

  ##### Returns:

  number - The width of the largest texture supported on this configuration (e.g. Voodoo Graphics returns 256).

#### inner fxGetMemoryFb() → {number}
`doc/internal.js`, `line 1301`

  ##### Returns:

  number - The total number of bytes per Pixelfx chip if a non-UMA configuration is used, else 0. In non-UMA configurations, the total FB memory is GR_MEMORY_FB * GR_NUM_FB.

#### inner fxGetMemoryTMU() → {number}
`doc/internal.js`, `line 1305`

  ##### Returns:

  number - The total number of bytes per Texelfx chip if a non-UMA configuration is used, else FXFALSE. In non-UMA configurations, the total usable texture memory is GR_MEMORY_TMU * GR_NUM_TMU.

#### inner fxGetMemoryUma() → {number}
`doc/internal.js`, `line 1309`

  ##### Returns:

  number - The total number of bytes if a UMA configuration, else 0.

#### inner fxGetNumBoards() → {number}
`doc/internal.js`, `line 1321`

  ##### Returns:

  number - The number of installed boards supported by Glide.

#### inner fxGetNumFb() → {number}
`doc/internal.js`, `line 1325`

  ##### Returns:

  number - The number of Pixelfx chips present. This number will always be 1 except for SLI configurations.

#### inner fxGetNumPendingBufferSwaps() → {number}
`doc/internal.js`, `line 1333`

  ##### Returns:

  number - The number of buffer swaps pending.

#### inner fxGetNumTmu() → {number}
`doc/internal.js`, `line 1329`

  ##### Returns:

  number - The number of Texelfx chips per Pixelfx chip. For integrated chips, the number of TMUs will be returned.

#### inner fxGetRevisionFb() → {number}
`doc/internal.js`, `line 1337`

  ##### Returns:

  number - The revision of the Pixelfx chip(s).

#### inner fxGetRevisionTmu() → {number}
`doc/internal.js`, `line 1341`

  ##### Returns:

  number - The revision of the Texelfx chip(s).

#### inner fxGetVertexSize() → {number}
`doc/internal.js`, `line 916`

  ##### Returns:

  number - the size of the currently active vertex layout in 'number of entries'.

#### inner fxGetWDepthMinMax() → {Array.<number>}
`doc/internal.js`, `line 1281`

  ##### Returns:

  Array.<number> - The minimum and maximum allowable w buffer values.

#### inner fxGetZDepthMinMax() → {Array.<number>}
`doc/internal.js`, `line 1277`

  ##### Returns:

  Array.<number> - The minimum and maximum allowable z buffer values.

#### inner fxInit()
`doc/internal.js`, `line 890`

  init 3dfx glide. the following parameters are used: GR_RESOLUTION_640x480, GR_REFRESH_60Hz, GR_COLORFORMAT_ARGB, GR_ORIGIN_UPPER_LEFT, GR_WINDOW_COORDS

#### inner fxIsBusy() → {number}
`doc/internal.js`, `line 1297`

  ##### Returns:

  number - Returns FXFALSE if idle, FXTRUE if busy.

#### inner fxLfbConstantAlpha(val)
`doc/internal.js`, `line 1348`

  Alpha value to use for direct framebuffer access.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | number | the constant alpha value.

#### inner fxLfbConstantDepth(val)
`doc/internal.js`, `line 1355`

  Depth value to use for direct framebuffer access.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | number | the constant depth value.

#### inner fxOrigin(origin)
`doc/internal.js`, `line 1080`

  establishes a y origin

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `origin` | GR_ORIGIN | set y origin.

#### inner fxRenderBuffer(buffer)
`doc/internal.js`, `line 1253`

  selects the current color buffer for drawing and clearing

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `buffer` | GR_BUFFER | Selects the current color buffer. Valid values are GR_BUFFER_FRONTBUFFER and GR_BUFFER_BACKBUFFER.

#### inner fxResetVertexLayout()
`doc/internal.js`, `line 905`

  Reset grVertexLayout parameter offset to zero, and all parameter modes to GR_PARAM_DISABLE.

#### inner FxRGB2Vertex(v, idx, rgb)
`jsboot/3dfx.js`, `line 616`

  split up RGB value and store in vertex.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v` | Array.<number> | the vertex to store in.
  `idx` | number | start index of RGB values.
  `rgb` | number | the RGB value.

#### inner fxShutdown()
`doc/internal.js`, `line 895`

  shut down the Glide library

#### inner fxTexCalcMemRequired(smallLod, largeLod, aspect, format) → {number}
`doc/internal.js`, `line 1247`

  return the texture memory consumed by a texture.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `smallLod` | GR_LOD | smallest level of detail
  `largeLod` | GR_LOD | larges level of detail
  `aspect` | GR_ASPECT | texture aspect ratio
  `format` | GR_TEXFMT | texture format

  ##### Returns:

  number - number of bytes required

#### inner fxTexClampMode(tmu, sMode, tMode)
`doc/internal.js`, `line 1200`

  set the texture map clamping/wrapping mode

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `sMode` | GR_TEXTURECLAMP | The new mode for the s direction
  `tMode` | GR_TEXTURECLAMP | The new mode for the t direction

#### inner fxTexCombine(tmu, rgb_func, rgb_factor, alpha_func, alpha_factor, rgb_invert, alpha_invert)
`doc/internal.js`, `line 1227`

  configure a texture combine unit

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `rgb_func` | GR_COMBINE_FUNCTION | Specifies the function used in texture color generation
  `rgb_factor` | GR_COMBINE_FACTOR | Specifies the scaling factor f used in texture color generation
  `alpha_func` | GR_COMBINE_FUNCTION | Specifies the function used in texture alpha generation
  `alpha_factor` | GR_COMBINE_FACTOR | Specifies the scaling factor f used in texture alpha generation
  `rgb_invert` | boolean | Specifies whether the generated texture color should be bitwise inverted as a final step.
  `alpha_invert` | boolean | Specifies whether the generated texture alpha should be bitwise inverted as a final step.

#### inner fxTexDetailControl(tmu, lodBias, detailScale, detailMax)
`doc/internal.js`, `line 1236`

  set the detail texturing controls

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `lodBias` | number | Controls where the blending between the two textures begins. This value is an LOD bias value in the range [–32.. +31].
  `detailScale` | number | Controls the steepness of the blend. Values are in the range [0..7] are valid. The scale is computed as 2^detailScale.
  `detailMax` | number | Controls the maximum blending that occurs. Values in the range [0.0..1.0] are valid.

#### inner fxTexFilterMode(tmu, minFilter, magFilter)
`doc/internal.js`, `line 1192`

  specify the texture minification and magnification filters

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `minFilter` | GR_TEXTUREFILTER | The minification filter
  `magFilter` | GR_TEXTUREFILTER | The magnification filter

#### inner fxTexLodBiasValue(tmu, bias)
`doc/internal.js`, `line 1215`

  set the LOD bias value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `bias` | number | The new LOD bias value, a signed floating point value in the range [-8..7.75].

#### inner fxTexMaxAddress(tmu)
`doc/internal.js`, `line 1265`

  return the highest start address for texture downloads

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.

#### inner FxTexMemGetStartAddress(tmu, info) → {number}
`jsboot/3dfx.js`, `line 579`

  try to find the next available memory for texture.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU where this texture shall be used.
  `info` | TexInfo | the texture.

  ##### Returns:

  number - a start address or null.

#### inner FxTexMemInit(tmu)
`jsboot/3dfx.js`, `line 564`

  (re)initialize simple texture memory management for given TMU.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the tmu to initialize.

#### inner fxTexMinAddress(tmu)
`doc/internal.js`, `line 1259`

  return the lowest start address for texture downloads

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.

#### inner fxTexMipMapMode(tmu, mode, lodBlend)
`doc/internal.js`, `line 1208`

  set the mipmapping mode

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `mode` | GR_MIPMAP | The new mipmapping mode
  `lodBlend` | boolean | enables/disables LOD blending

#### inner fxTexNCCTable(table)
`doc/internal.js`, `line 1271`

  select an NCC table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `table` | GR_TEXTABLE | NCC table to use for decompressing compressed textures. Valid values are GR_TEXTABLE_NCC0 and GR_TEXTABLE_NCC1.

#### inner fxVertexLayout(layout)
`doc/internal.js`, `line 911`

  specify the format of by-vertex arrays

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `layout` | Array.<GR_PARAM> | list of layout parameters.

#### inner fxViewport(x, y, width, height)
`doc/internal.js`, `line 1114`

  define a viewport

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The origin of the viewport, relative to the screen origin
  `y` | number | The origin of the viewport, relative to the screen origin
  `width` | number | The width and height of the viewport.
  `height` | number | The width and height of the viewport.

## 3dfx

Color definition.

### Members

#### inner FX_HEIGHT
`doc/internal.js`, `line 879`

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `voodoo` | number | graphics height

#### inner FX_WIDTH
`doc/internal.js`, `line 875`

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `voodoo` | number | graphics width

#### inner GR_ASPECT
`jsboot/3dfx.js`, `line 384`

  typedef FxI32 GrAspectRatio_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `LOG2_8x1` | number |
  `LOG2_4x1` | number |
  `LOG2_2x1` | number |
  `LOG2_1x1` | number |
  `LOG2_1x2` | number |
  `LOG2_1x4` | number |
  `LOG2_1x8` | number |

#### inner GR_BLEND
`jsboot/3dfx.js`, `line 183`

  typedef FxI32 GrAlphaBlendFnc_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `SRC_ALPHA` | number |
  `SRC_COLOR` | number |
  `DST_COLOR` | number |
  `DST_ALPHA` | number |
  `ONE` | number |
  `ONE_MINUS_SRC_ALPHA` | number |
  `ONE_MINUS_SRC_COLOR` | number |
  `ONE_MINUS_DST_COLOR` | number |
  `ONE_MINUS_DST_ALPHA` | number |
  `RESERVED_8` | number |
  `RESERVED_9` | number |
  `RESERVED_A` | number |
  `RESERVED_B` | number |
  `RESERVED_C` | number |
  `RESERVED_D` | number |
  `RESERVED_E` | number |
  `ALPHA_SATURATE` | number |
  `PREFOG_COLOR` | number |

#### inner GR_BUFFER
`jsboot/3dfx.js`, `line 501`

  typedef FxI32 GrBuffer_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `FRONTBUFFER` | number |
  `BACKBUFFER` | number |
  `AUXBUFFER` | number |
  `DEPTHBUFFER` | number |
  `ALPHABUFFER` | number |
  `TRIPLEBUFFER` | number |

#### inner GR_CMP
`jsboot/3dfx.js`, `line 284`

  typedef FxI32 GrCmpFnc_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `NEVER` | number |
  `LESS` | number |
  `EQUAL` | number |
  `LEQUAL` | number |
  `GREATER` | number |
  `NOTEQUAL` | number |
  `GEQUAL` | number |
  `ALWAYS` | number |

#### inner GR_COLORCOMBINE
`jsboot/3dfx.js`, `line 531`

  typedef FxI32 GrColorCombineFnc_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `CCRGB` | number |
  `ITRGB` | number |
  `ITRGB_DELTA0` | number |
  `DECAL_TEXTURE` | number |
  `TEXTURE_TIMES_CCRGB` | number |
  `TEXTURE_TIMES_ITRGB` | number |
  `TEXTURE_TIMES_ITRGB_DELTA0` | number |
  `TEXTURE_TIMES_ITRGB_ADD_ALPHA` | number |
  `TEXTURE_TIMES_ALPHA` | number |
  `TEXTURE_TIMES_ALPHA_ADD_ITRGB` | number |
  `TEXTURE_ADD_ITRGB` | number |
  `TEXTURE_SUB_ITRGB` | number |
  `CCRGB_BLEND_ITRGB_ON_TEXALPHA` | number |
  `DIFF_SPEC_A` | number |
  `DIFF_SPEC_B` | number |
  `ONE` | number |

#### inner GR_COMBINE_FACTOR
`jsboot/3dfx.js`, `line 114`

  typedef FxI32 GrCombineFactor_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `NONE` | number |
  `LOCAL` | number |
  `OTHER_ALPHA` | number |
  `LOCAL_ALPHA` | number |
  `TEXTURE_ALPHA` | number |
  `TEXTURE_RGB` | number |
  `DETAIL_FACTOR` | number |
  `LOD_FRACTION` | number |
  `ONE` | number |
  `ONE_MINUS_LOCAL` | number |
  `ONE_MINUS_OTHER_ALPHA` | number |
  `ONE_MINUS_LOCAL_ALPHA` | number |
  `ONE_MINUS_TEXTURE_ALPHA` | number |
  `ONE_MINUS_DETAIL_FACTOR` | number |
  `ONE_MINUS_LOD_FRACTION` | number |

#### inner GR_COMBINE_FUNCTION
`jsboot/3dfx.js`, `line 77`

  typedef FxI32 GrCombineFunction_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ZERO` | number |
  `NONE` | number |
  `LOCAL` | number |
  `LOCAL_ALPHA` | number |
  `SCALE_OTHER` | number |
  `BLEND_OTHER` | number |
  `SCALE_OTHER_ADD_LOCAL` | number |
  `SCALE_OTHER_ADD_LOCAL_ALPHA` | number |
  `SCALE_OTHER_MINUS_LOCAL` | number |
  `SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL` | number |
  `BLEND` | number |
  `SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL_ALPHA` | number |
  `SCALE_MINUS_LOCAL_ADD_LOCAL` | number |
  `BLEND_LOCAL` | number |
  `SCALE_MINUS_LOCAL_ADD_LOCAL_ALPHA` | number |

#### inner GR_COMBINE_LOCAL
`jsboot/3dfx.js`, `line 140`

  typedef FxI32 GrCombineLocal_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ITERATED` | number |
  `CONSTANT` | number |
  `NONE` | number |
  `DEPTH` | number |

#### inner GR_COMBINE_OTHER
`jsboot/3dfx.js`, `line 154`

  typedef FxI32 GrCombineOther_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ITERATED` | number |
  `TEXTURE` | number |
  `CONSTANT` | number |
  `NONE` | number |

#### inner GR_CULL
`jsboot/3dfx.js`, `line 53`

  typedef FxI32 GrCullMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `NEGATIVE` | number |
  `POSITIVE` | number |

#### inner GR_DEPTHBUFFER
`jsboot/3dfx.js`, `line 265`

  typedef FxI32 GrDepthBufferMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `ZBUFFER` | number |
  `WBUFFER` | number |
  `ZBUFFER_COMPARE_TO_BIAS` | number |
  `WBUFFER_COMPARE_TO_BIAS` | number |

#### inner GR_DITHER
`jsboot/3dfx.js`, `line 251`

  typedef FxI32 GrDitherMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `D2x2` | number |
  `D4x4` | number |

#### inner GR_ENABLE
`jsboot/3dfx.js`, `line 237`

  typedef FxU32 GrEnableMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `AA_ORDERED` | number |
  `ALLOW_MIPMAP_DITHER` | number |
  `PASSTHRU` | number |
  `SHAMELESS_PLUG` | number |
  `VIDEO_SMOOTHING` | number |

#### inner GR_FOG
`jsboot/3dfx.js`, `line 305`

  typedef FxI32 GrFogMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `WITH_TABLE_ON_FOGCOORD_EXT` | number |
  `WITH_TABLE_ON_Q` | number |
  `WITH_TABLE_ON_W` | number |
  `WITH_ITERATED_Z` | number |
  `MULT2` | number |
  `ADD2` | number |

#### inner GR_LOD
`jsboot/3dfx.js`, `line 406`

  typedef FxI32 GrLOD_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `LOG2_256` | number |
  `LOG2_128` | number |
  `LOG2_64` | number |
  `LOG2_32` | number |
  `LOG2_16` | number |
  `LOG2_8` | number |
  `LOG2_4` | number |
  `LOG2_2` | number |
  `LOG2_1` | number |

#### inner GR_MIPMAP
`jsboot/3dfx.js`, `line 355`

  typedef FxI32 GrMipMapMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DISABLE` | number |
  `NEAREST` | number |
  `NEAREST_DITHER` | number |

#### inner GR_MIPMAPLEVELMASK
`jsboot/3dfx.js`, `line 486`

  GR_MIPMAPLEVELMASK

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `EVEN` | number |
  `ODD` | number |
  `BOTH` | number |

#### inner GR_ORIGIN
`jsboot/3dfx.js`, `line 368`

  typedef FxI32 GrOriginLocation_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `UPPER_LEFT` | number |
  `LOWER_LEFT` | number |
  `ANY` | number |

#### inner GR_PARAM
`jsboot/3dfx.js`, `line 29`

  Parameters for vertex definition.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `XY` | number |
  `ZW` | number |
  `Q` | number |
  `EXT` | number |
  `A` | number |
  `RGB` | number |
  `PARG` | number |
  `ST0` | number |
  `ST1` | number |
  `ST2` | number |
  `Q0` | number |
  `Q1` | number |
  `Q2` | number |

#### inner GR_TEXFMT
`jsboot/3dfx.js`, `line 442`

  typedef FxI32 GrTextureFormat_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `BIT8` | number |
  `RGB_332` | number |
  `YIQ_422` | number |
  `ALPHA_8` | number |
  `INTENSITY_8` | number |
  `ALPHA_INTENSITY_44` | number |
  `P_8` | number |
  `RSVD0` | number |
  `P_8_6666` | number |
  `P_8_6666_EXT` | number |
  `RSVD1` | number |
  `BIT16` | number |
  `ARGB_8332` | number |
  `AYIQ_8422` | number |
  `RGB_565` | number |
  `ARGB_1555` | number |
  `ARGB_4444` | number |
  `ALPHA_INTENSITY_88` | number |
  `AP_88` | number |
  `RSVD2` | number |
  `RSVD4` | number |

#### inner GR_TEXTABLE
`jsboot/3dfx.js`, `line 473`

  typedef FxU32 GrTexTable_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `NCC0` | number |
  `NCC1` | number |
  `PALETTE` | number |
  `PALETTE_6666_EXT` | number |

#### inner GR_TEXTURECLAMP
`jsboot/3dfx.js`, `line 343`

  typedef FxI32 GrTextureClampMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `WRAP` | number |
  `CLAMP` | number |
  `MIRROR_EXT` | number |

#### inner GR_TEXTUREFILTER
`jsboot/3dfx.js`, `line 332`

  typedef FxI32 GrTextureFilterMode_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `POINT_SAMPLED` | number |
  `BILINEAR` | number |

#### inner GR_TMU
`jsboot/3dfx.js`, `line 321`

  typedef FxI32 GrChipID_t;

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `TMU0` | number |
  `TMU1` | number |
  `TMU2` | number |

#### inner GR_VERTEX
`jsboot/3dfx.js`, `line 217`

  grDrawVertexArray/grDrawVertexArrayContiguous primitive type

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `POINTS` | number |
  `LINE_STRIP` | number |
  `LINES` | number |
  `POLYGON` | number |
  `TRIANGLE_STRIP` | number |
  `TRIANGLE_FAN` | number |
  `TRIANGLES` | number |
  `TRIANGLE_STRIP_CONTINUE` | number |
  `TRIANGLE_FAN_CONTINUE` | number |

#### inner lastTexture
`jsboot/3dfx.js`, `line 557`

  TMU memory end address per TMU

#### inner nextTexture
`jsboot/3dfx.js`, `line 555`

  TMU memory start address/next address per TMU

#### inner TEXMEM_2MB_EDGE
`jsboot/3dfx.js`, `line 552`

  hard edge when assigning texture memory at 2MiB

### Methods

#### inner fxAADrawTriangle(a, b, c, b1, b2, b3)
`doc/internal.js`, `line 1054`

  draw an anti-aliased triangle

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Array.<number> | a vertex
  `b` | Array.<number> | a vertex
  `c` | Array.<number> | a vertex
  `b1` | boolean | anti alias AB edge
  `b2` | boolean | anti alias BC edge
  `b3` | boolean | anti alias CA edge

#### inner fxAlphaBlendFunction(rgb_sf, rgb_df, alpha_sf, alpha_df)
`doc/internal.js`, `line 986`

  specify the alpha blending function

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rgb_sf` | GR_BLEND | rgb source blending factor
  `rgb_df` | GR_BLEND | rgb destination blending factor
  `alpha_sf` | GR_BLEND | alpha source blending factor
  `alpha_df` | GR_BLEND | alpha destination blending factor

#### inner fxAlphaCombine(func, factor, local, other, invert)
`doc/internal.js`, `line 996`

  configure the alpha combine unit.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_COMBINE_FUNCTION | function
  `factor` | GR_COMBINE_FACTOR | scaling factor
  `local` | GR_COMBINE_LOCAL | local alpha
  `other` | GR_COMBINE_OTHER | other alpha
  `invert` | boolean | invert generated alpha.

#### inner fxAlphaControlsITRGBLighting(enable)
`doc/internal.js`, `line 1066`

  enables/disables alpha controlled lighting

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable` | boolean | enable/disable

#### inner fxAlphaTestFunction(func)
`doc/internal.js`, `line 1178`

  specify the alpha test function

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_CMP | the function

#### inner fxAlphaTestReferenceValue(value)
`doc/internal.js`, `line 1184`

  specify the alpha test reference value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | number | The new alpha test reference value.

#### inner FXBIT(i) → {number}
`jsboot/3dfx.js`, `line 11`

  set a bit.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `i` | number | bit to set.

  ##### Returns:

  number - number with given bit set.

#### inner fxBufferClear(color, alpha, depth)
`doc/internal.js`, `line 935`

  clear the buffers to the specified values

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | number | The color value used for clearing the draw buffer.
  `alpha` | number | The alpha value used for clearing the alpha buffer
  `depth` | number | An unsigned value used for clearing the depth buffer

#### inner fxBufferSwap(interval)
`doc/internal.js`, `line 927`

  exchange front and back buffers

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `interval` | number | The number of vertical retraces to wait before swapping the front and back buffers.

#### inner fxChromakeyMode(mode)
`doc/internal.js`, `line 1166`

  enable/disable hardware chroma-keying

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | boolean | enable/disable

#### inner fxChromakeyValue(val)
`doc/internal.js`, `line 1172`

  set the global chroma-key reference value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | number | The new chroma-key reference value.

#### inner fxClipWindow(minx, miny, maxx, maxy)
`doc/internal.js`, `line 944`

  set the size and location of the hardware clipping window

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `minx` | number | The lower x screen coordinate of the clipping window.
  `miny` | number | The lower y screen coordinate of the clipping window.
  `maxx` | number | The upper x screen coordinate of the clipping window.
  `maxy` | number | The upper y screen coordinate of the clipping window.

#### inner fxColorCombine(func, factor, local, other, invert)
`doc/internal.js`, `line 1006`

  configure the color combine unit.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_COMBINE_FUNCTION | function
  `factor` | GR_COMBINE_FACTOR | scaling factor
  `local` | GR_COMBINE_LOCAL | local alpha
  `other` | GR_COMBINE_OTHER | other alpha
  `invert` | boolean | invert generated alpha.

#### inner fxColorMask(rgb, alpha)
`doc/internal.js`, `line 1013`

  enable/disable writing into the color and alpha buffers

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rgb` | number | color mask
  `alpha` | number | alpha mask

#### inner fxConstantColorValue(color)
`doc/internal.js`, `line 971`

  set the global constant color

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | number | The new constant color.

#### inner fxCullMode(mode)
`doc/internal.js`, `line 977`

  set the cull mode.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_CULL | the noew mode.

#### inner fxDepthBiasLevel(level)
`doc/internal.js`, `line 1098`

  set the depth bias level

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `level` | number | th new level.

#### inner fxDepthBufferFunction(func)
`doc/internal.js`, `line 1092`

  specify the depth buffer comparison function

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `func` | GR_CMP | the new function

#### inner fxDepthBufferMode(mode)
`doc/internal.js`, `line 1086`

  set the depth buffering mode

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_DEPTHBUFFER | the mode

#### inner fxDepthMask(enable)
`doc/internal.js`, `line 1019`

  enable/disable writing into the depth buffer

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable` | boolean | enable/disable

#### inner fxDepthRange(near, far)
`doc/internal.js`, `line 1105`

  specify viewport depth range

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `near` | number | min range
  `far` | number | max range

#### inner fxDisable(val)
`doc/internal.js`, `line 1038`

  enable Glide operating modes

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | GR_ENABLE | one of GR_ENABLE.

#### inner fxDisableAllEffects()
`doc/internal.js`, `line 1043`

  disable all special effects in the graphics subsystem

#### inner fxDitherMode(mode)
`doc/internal.js`, `line 1060`

  set dither mode.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_DITHER | the new dither mode.

#### inner fxDrawLine(v1, v2)
`doc/internal.js`, `line 957`

  draw a one-pixel-wide arbitrarily oriented line

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v1` | Array.<number> | a vertex.
  `v2` | Array.<number> | a vertex.

#### inner fxDrawPoint(v1)
`doc/internal.js`, `line 950`

  draw a point

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v1` | Array.<number> | a vertex.

#### inner fxDrawTriangle(v1, v2, v3)
`doc/internal.js`, `line 965`

  draw a triangle

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v1` | Array.<number> | a vertex.
  `v2` | Array.<number> | a vertex.
  `v3` | Array.<number> | a vertex.

#### inner fxDrawVertexArray(mode, vertices)
`doc/internal.js`, `line 1026`

  draw a list of by-vertex vertices

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_VERTEX | vertex type
  `vertices` | Array.<Array.<number>> | array of vertices.

#### inner FxEmptyVertex() → {Array.<number>}
`jsboot/3dfx.js`, `line 600`

  create empty vertex.

  ##### Returns:

  Array.<number> - an empty vertex.

#### inner fxEnable(val)
`doc/internal.js`, `line 1032`

  enable Glide operating modes

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | GR_ENABLE | one of GR_ENABLE.

#### inner fxFinish()
`doc/internal.js`, `line 921`

  force completion of all outstanding graphics commands.

#### inner fxFlush()
`doc/internal.js`, `line 900`

  flush the graphics FIFO

#### inner fxFogColorValue(color)
`doc/internal.js`, `line 1126`

  set the global fog color

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | number | the new fog color

#### inner fxFogGenerateExp(density) → {Array.<number>}
`doc/internal.js`, `line 1145`

  generate an exponential fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `density` | number | The fog density, typically between 0.0 and 1.0.

  ##### Returns:

  Array.<number> - a fog table.

#### inner fxFogGenerateExp2(density) → {Array.<number>}
`doc/internal.js`, `line 1152`

  generate an exponential squared fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `density` | * | The fog density, typically between 0.0 and 1.0.

  ##### Returns:

  Array.<number> - a fog table.

#### inner fxFogGenerateLinear(near, far) → {Array.<number>}
`doc/internal.js`, `line 1160`

  generate a linear fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `near` | number | The eye-space w coordinate where minimum fog exists.
  `far` | number | The eye-space w coordinate where maximum fog exists.

  ##### Returns:

  Array.<number> - a fog table.

#### inner fxFogMode(mode)
`doc/internal.js`, `line 1120`

  enable/disable per-pixel fog blending operations

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | GR_FOG | the new fog mode.

#### inner fxFogTable(table)
`doc/internal.js`, `line 1138`

  download a fog table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `table` | Array.<number> | a new table with at least fxGetFogTableEntries() entries

#### inner fxFogTableIndexToW(i)
`doc/internal.js`, `line 1132`

  convert a fog table index to a floating point eye-space w value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `i` | number | The fog table index, between 0 and GR_FOG_TABLE_SIZE.

#### inner fxGammaCorrectionRGB(r, g, b)
`doc/internal.js`, `line 1074`

  set up gamma correction tables

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `r` | number |
  `g` | * |
  `b` | * |

#### inner fxGetBitsDepth() → {number}
`doc/internal.js`, `line 1285`

  ##### Returns:

  number - The number of bits of depth (z or w) in the frame buffer.

#### inner fxGetFogTableEntries() → {number}
`doc/internal.js`, `line 1289`

  ##### Returns:

  number - The number of entries in the hardware fog table.

#### inner fxGetGammaTableEntries() → {number}
`doc/internal.js`, `line 1293`

  ##### Returns:

  number - The number of entries in the hardware gamma table. Returns FXFALSE if it is not possible to manipulate gamma (e.g. on a Macronix card, or in windowed mode).

#### inner fxGetMaxTextureAspectRatio() → {number}
`doc/internal.js`, `line 1317`

  ##### Returns:

  number - The logarithm base 2 of the maximum aspect ratio supported for power-of-two, mipmap-able textures (e.g. Voodoo Graphics returns 3).

#### inner fxGetMaxTextureSize() → {number}
`doc/internal.js`, `line 1313`

  ##### Returns:

  number - The width of the largest texture supported on this configuration (e.g. Voodoo Graphics returns 256).

#### inner fxGetMemoryFb() → {number}
`doc/internal.js`, `line 1301`

  ##### Returns:

  number - The total number of bytes per Pixelfx chip if a non-UMA configuration is used, else 0. In non-UMA configurations, the total FB memory is GR_MEMORY_FB * GR_NUM_FB.

#### inner fxGetMemoryTMU() → {number}
`doc/internal.js`, `line 1305`

  ##### Returns:

  number - The total number of bytes per Texelfx chip if a non-UMA configuration is used, else FXFALSE. In non-UMA configurations, the total usable texture memory is GR_MEMORY_TMU * GR_NUM_TMU.

#### inner fxGetMemoryUma() → {number}
`doc/internal.js`, `line 1309`

  ##### Returns:

  number - The total number of bytes if a UMA configuration, else 0.

#### inner fxGetNumBoards() → {number}
`doc/internal.js`, `line 1321`

  ##### Returns:

  number - The number of installed boards supported by Glide.

#### inner fxGetNumFb() → {number}
`doc/internal.js`, `line 1325`

  ##### Returns:

  number - The number of Pixelfx chips present. This number will always be 1 except for SLI configurations.

#### inner fxGetNumPendingBufferSwaps() → {number}
`doc/internal.js`, `line 1333`

  ##### Returns:

  number - The number of buffer swaps pending.

#### inner fxGetNumTmu() → {number}
`doc/internal.js`, `line 1329`

  ##### Returns:

  number - The number of Texelfx chips per Pixelfx chip. For integrated chips, the number of TMUs will be returned.

#### inner fxGetRevisionFb() → {number}
`doc/internal.js`, `line 1337`

  ##### Returns:

  number - The revision of the Pixelfx chip(s).

#### inner fxGetRevisionTmu() → {number}
`doc/internal.js`, `line 1341`

  ##### Returns:

  number - The revision of the Texelfx chip(s).

#### inner fxGetVertexSize() → {number}
`doc/internal.js`, `line 916`

  ##### Returns:

  number - the size of the currently active vertex layout in 'number of entries'.

#### inner fxGetWDepthMinMax() → {Array.<number>}
`doc/internal.js`, `line 1281`

  ##### Returns:

  Array.<number> - The minimum and maximum allowable w buffer values.

#### inner fxGetZDepthMinMax() → {Array.<number>}
`doc/internal.js`, `line 1277`

  ##### Returns:

  Array.<number> - The minimum and maximum allowable z buffer values.

#### inner fxInit()
`doc/internal.js`, `line 890`

  init 3dfx glide. the following parameters are used: GR_RESOLUTION_640x480, GR_REFRESH_60Hz, GR_COLORFORMAT_ARGB, GR_ORIGIN_UPPER_LEFT, GR_WINDOW_COORDS

#### inner fxIsBusy() → {number}
`doc/internal.js`, `line 1297`

  ##### Returns:

  number - Returns FXFALSE if idle, FXTRUE if busy.

#### inner fxLfbConstantAlpha(val)
`doc/internal.js`, `line 1348`

  Alpha value to use for direct framebuffer access.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | number | the constant alpha value.

#### inner fxLfbConstantDepth(val)
`doc/internal.js`, `line 1355`

  Depth value to use for direct framebuffer access.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | number | the constant depth value.

#### inner fxOrigin(origin)
`doc/internal.js`, `line 1080`

  establishes a y origin

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `origin` | GR_ORIGIN | set y origin.

#### inner fxRenderBuffer(buffer)
`doc/internal.js`, `line 1253`

  selects the current color buffer for drawing and clearing

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `buffer` | GR_BUFFER | Selects the current color buffer. Valid values are GR_BUFFER_FRONTBUFFER and GR_BUFFER_BACKBUFFER.

#### inner fxResetVertexLayout()
`doc/internal.js`, `line 905`

  Reset grVertexLayout parameter offset to zero, and all parameter modes to GR_PARAM_DISABLE.

#### inner FxRGB2Vertex(v, idx, rgb)
`jsboot/3dfx.js`, `line 616`

  split up RGB value and store in vertex.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `v` | Array.<number> | the vertex to store in.
  `idx` | number | start index of RGB values.
  `rgb` | number | the RGB value.

#### inner fxShutdown()
`doc/internal.js`, `line 895`

  shut down the Glide library

#### inner fxTexCalcMemRequired(smallLod, largeLod, aspect, format) → {number}
`doc/internal.js`, `line 1247`

  return the texture memory consumed by a texture.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `smallLod` | GR_LOD | smallest level of detail
  `largeLod` | GR_LOD | larges level of detail
  `aspect` | GR_ASPECT | texture aspect ratio
  `format` | GR_TEXFMT | texture format

  ##### Returns:

  number - number of bytes required

#### inner fxTexClampMode(tmu, sMode, tMode)
`doc/internal.js`, `line 1200`

  set the texture map clamping/wrapping mode

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `sMode` | GR_TEXTURECLAMP | The new mode for the s direction
  `tMode` | GR_TEXTURECLAMP | The new mode for the t direction

#### inner fxTexCombine(tmu, rgb_func, rgb_factor, alpha_func, alpha_factor, rgb_invert, alpha_invert)
`doc/internal.js`, `line 1227`

  configure a texture combine unit

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `rgb_func` | GR_COMBINE_FUNCTION | Specifies the function used in texture color generation
  `rgb_factor` | GR_COMBINE_FACTOR | Specifies the scaling factor f used in texture color generation
  `alpha_func` | GR_COMBINE_FUNCTION | Specifies the function used in texture alpha generation
  `alpha_factor` | GR_COMBINE_FACTOR | Specifies the scaling factor f used in texture alpha generation
  `rgb_invert` | boolean | Specifies whether the generated texture color should be bitwise inverted as a final step.
  `alpha_invert` | boolean | Specifies whether the generated texture alpha should be bitwise inverted as a final step.

#### inner fxTexDetailControl(tmu, lodBias, detailScale, detailMax)
`doc/internal.js`, `line 1236`

  set the detail texturing controls

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `lodBias` | number | Controls where the blending between the two textures begins. This value is an LOD bias value in the range [–32.. +31].
  `detailScale` | number | Controls the steepness of the blend. Values are in the range [0..7] are valid. The scale is computed as 2^detailScale.
  `detailMax` | number | Controls the maximum blending that occurs. Values in the range [0.0..1.0] are valid.

#### inner fxTexFilterMode(tmu, minFilter, magFilter)
`doc/internal.js`, `line 1192`

  specify the texture minification and magnification filters

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `minFilter` | GR_TEXTUREFILTER | The minification filter
  `magFilter` | GR_TEXTUREFILTER | The magnification filter

#### inner fxTexLodBiasValue(tmu, bias)
`doc/internal.js`, `line 1215`

  set the LOD bias value

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `bias` | number | The new LOD bias value, a signed floating point value in the range [-8..7.75].

#### inner fxTexMaxAddress(tmu)
`doc/internal.js`, `line 1265`

  return the highest start address for texture downloads

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.

#### inner FxTexMemGetStartAddress(tmu, info) → {number}
`jsboot/3dfx.js`, `line 579`

  try to find the next available memory for texture.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU where this texture shall be used.
  `info` | TexInfo | the texture.

  ##### Returns:

  number - a start address or null.

#### inner FxTexMemInit(tmu)
`jsboot/3dfx.js`, `line 564`

  (re)initialize simple texture memory management for given TMU.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the tmu to initialize.

#### inner fxTexMinAddress(tmu)
`doc/internal.js`, `line 1259`

  return the lowest start address for texture downloads

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.

#### inner fxTexMipMapMode(tmu, mode, lodBlend)
`doc/internal.js`, `line 1208`

  set the mipmapping mode

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tmu` | GR_TMU | the TMU.
  `mode` | GR_MIPMAP | The new mipmapping mode
  `lodBlend` | boolean | enables/disables LOD blending

#### inner fxTexNCCTable(table)
`doc/internal.js`, `line 1271`

  select an NCC table

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `table` | GR_TEXTABLE | NCC table to use for decompressing compressed textures. Valid values are GR_TEXTABLE_NCC0 and GR_TEXTABLE_NCC1.

#### inner fxVertexLayout(layout)
`doc/internal.js`, `line 911`

  specify the format of by-vertex arrays

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `layout` | Array.<GR_PARAM> | list of layout parameters.

#### inner fxViewport(x, y, width, height)
`doc/internal.js`, `line 1114`

  define a viewport

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The origin of the viewport, relative to the screen origin
  `y` | number | The origin of the viewport, relative to the screen origin
  `width` | number | The width and height of the viewport.
  `height` | number | The width and height of the viewport.