In file libs/cs3d/software/scan.h:

## extern C extern csScanSetup Scan

> The only instance of this structure

  The following fields are only used when drawing unlighted tiled textures (the draw_scanline_
  The following fields are used by the polygon drawer and contain information fot calculating the 1/z, u/z, and v/z linear equations
int AlphaFact
  General alpha factor for 16-bit renderer (0 to 255).
RGB8map* AlphaMap
  Set up by poly renderer to alpha blending table
unsigned int AlphaMask
  Alpha mask for 16-bit renderer.
int and_h
  1 << shf_h - 1
int and_w
  1 << shf_w - 1
unsigned char* BlendingTable[6]
  This table contains eight subtables - one for each available blending mode (see BLENDTABLE_XXX constants)
unsigned char* BlendTable
  Current blending table
unsigned short* color_565_table
  This table is really two tables in one (they have the same size -- notice the 2 as a multiplier)
float dJ1
  Difference for every 16 pixels.
float dK1
  Difference for every 16 pixels.
float dM
  Difference for every 16 pixels.
unsigned char* exp_16
  Same in the range 0
unsigned char* exp_256
  A table of exp(x) in the range 0
float fdu
  Difference with u for untiled textures.
float fdv
  Difference with v for untiled textures.
int* filter_mul_table
  These tables are used for bilinear filtering
int FlatColor
  Mean color value.
unsigned char* Fog8
  The fog table for paletted (currently only 8-bit) modes
unsigned long FogDensity
  Fog density
int FogPix
  The fog pixel (R|G|B for true/hicolor) or index into palette of fog color
int FogR
  Fog color
int InterpolMode
  Interpolation mode
int InterpolShift
  Interpolation step (shift-value) for semi-perspective correct texture mapping
int InterpolStep
  Interpolation step for semi-perspective correct texture mapping
float J1
  Difference value for every horizontal dx.
float K1
  Difference value for every horizontal dx.
float M
  Difference value for every horizontal dx.
unsigned int* one_div_z
  A table of 4096 1/z values where z is in fixed-point 0
unsigned short* PaletteTable
  8-bit to 16-bit conversion table
unsigned char* PrivToGlobal
  Local texture palette -> global palette conversion table
int shf_h
  log2(texture_height)
int shf_u
  log2 (texture_u)
int shf_w
  log2(texture_width)
csTextureMMSoftware* Texture
  A pointer to the texture.
int th
  Height of unlighted texture.
int th2
  Height of the texture from the texture cache.
int th2fp
  Texture height in 16:16 fixed-point format - 1
unsigned char* tmap
  The unlighted texture bitmap.
unsigned char* tmap2
  The lighted texture bitmap from the texture cache.
int tw
  Width of unlighted texture.
int tw2
  Width of the texture from the texture cache.
int tw2fp
  Texture width in 16:16 fixed-point format - 1

## Documentation

> The only instance of this structure

`int InterpolStep`
  Interpolation step for semi-perspective correct texture mapping

`int InterpolShift`
  Interpolation step (shift-value) for semi-perspective correct texture mapping

`int InterpolMode`
  Interpolation mode

`int FogR`
  Fog color

`int FogPix`
  The fog pixel (R|G|B for true/hicolor) or index into palette of fog color

`unsigned long FogDensity`
  Fog density

`unsigned char* Fog8`
  The fog table for paletted (currently only 8-bit) modes

`csTextureMMSoftware* Texture`
  A pointer to the texture.

`unsigned char* tmap2`
  The lighted texture bitmap from the texture cache.

`int tw2`
  Width of the texture from the texture cache.

`int th2`
  Height of the texture from the texture cache.

`float fdu`
  Difference with u for untiled textures.

`float fdv`
  Difference with v for untiled textures.

`int tw2fp`
  Texture width in 16:16 fixed-point format - 1

`int th2fp`
  Texture height in 16:16 fixed-point format - 1

`unsigned char* tmap`
  The unlighted texture bitmap.

`int tw`
  Width of unlighted texture.

`int th`
  Height of unlighted texture.

``
  The following fields are used by the polygon drawer and contain information fot calculating the 1/z, u/z, and v/z linear equations

`float M`
  Difference value for every horizontal dx.

`float J1`
  Difference value for every horizontal dx.

`float K1`
  Difference value for every horizontal dx.

`float dM`
  Difference for every 16 pixels.

`float dJ1`
  Difference for every 16 pixels.

`float dK1`
  Difference for every 16 pixels.

`int FlatColor`
  Mean color value.

`unsigned int AlphaMask`
  Alpha mask for 16-bit renderer.

`int AlphaFact`
  General alpha factor for 16-bit renderer (0 to 255).

`int shf_u`
  log2 (texture_u)

``
  The following fields are only used when drawing unlighted tiled textures (the draw_scanline_..._map_... routines don't need them).

`int shf_w`
  log2(texture_width)

`int and_w`
  1 << shf_w - 1

`int shf_h`
  log2(texture_height)

`int and_h`
  1 << shf_h - 1

`unsigned char* PrivToGlobal`
  Local texture palette -> global palette conversion table

`unsigned short* PaletteTable`
  8-bit to 16-bit conversion table

`RGB8map* AlphaMap`
  Set up by poly renderer to alpha blending table

`unsigned char* BlendTable`
  Current blending table

`int* filter_mul_table`
  These tables are used for bilinear filtering. This feature is still (and IMHO, till Merced III-10GHz, will remain) experimental. - D.D. To all familiar with MMX: implementation in MMX can be fast -- routine makes the same things for four pixels values. And quality could jump (for speed and memory consumption I'm using 16 grades).

  This table incorporates values (1-x)*(1-y), (1-x)*y, x*(1-y), and x*y

`unsigned short* color_565_table`
  This table is really two tables in one (they have the same size -- notice the 2 as a multiplier). It removes all the multiplications from the function. Sorry for lack of details, but there's a lot to be said. If you really want to know what is this table for, see "scan.cpp" and "scan16.cpp" -- generation of the table, and it's usage respectively.

`unsigned int* one_div_z`
  A table of 4096 1/z values where z is in fixed-point 0.12 format Used in fog routines to get the real value of Z. The result is an 8.24 fixed-point number.

`unsigned char* exp_256`
  A table of exp(x) in the range 0..255; x == 0..EXP_256_SIZE

`unsigned char* exp_16`
  Same in the range 0..31 for 8-bit fog

`unsigned char* BlendingTable[6]`
  This table contains eight subtables - one for each available blending mode (see BLENDTABLE_XXX constants). Since SRC can be twice brighter than maximum, BlendingTable has a twice larger SRC dimension (i.e. it is a (BLENDTABLE_MAX*2 x BLENDTABLE_MAX) matrix);

alphabetic index hierarchy of classes

this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de