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