GXSetTevIndWarp

Syntax

#include <revolution/gx.h>

void GXSetTevIndWarp( GXTevStageID tev_stage, 
                      GXIndTexStageID ind_stage,
                      GXBool signed_offsets, 
                      GXBool replace_mode,
                      GXIndTexMtxID matrix_sel);

Arguments

tev_stage TEV stage to be set. Accepted values are: GX_TEVSTAGE0, GX_TEVSTAGE1, GX_TEVSTAGE2, ... , GX_TEVSTAGE15.
ind_stage The indirect stage results used with this TEV stage.
Accepted values are: GX_INDTEXSTAGE0, GX_INDTEXSTAGE1, GX_INDTEXSTAGE2 and GX_INDTEXSTAGE3.
signed_offsets Specifies whether the 8-bit offset is signed and biased (GX_TRUE) or unsigned (GX_FALSE).
replace_mode Specifies whether the offset will replace the regular texture coordinates (GX_TRUE) or be added to them (GX_FALSE).
matrix_sel Specifies the indirect matrix and scale value for the offset. Accepted values are:
Name Indirect Matrix and Scale Value Used
GX_ITM_0 Indirect matrix 0 and matrix scale value 0.
GX_ITM_1 Indirect matrix 1 and matrix scale value 1.
GX_ITM_2 Indirect matrix 2 and matrix scale value 2.

Return Values

None.

Description

This function allows an indirect map to warp or distort the texture coordinates used with a regular TEV stage lookup. The indirect map must have 8-bit offsets, which may be signed or unsigned. Signed means biased; if signed_offsets is GX_TRUE, 128 is subtracted from the values looked up from the indirect map. The indirect results can either modify or completely replace the regular texture coordinates. The indirect matrix and scale can be used to modify the indirect offsets.

For users who want to learn more, the following code sample uses the GXSetTevIndirect function to perform operations equivalent to this function.

{
  GXSetTevIndirect(
    tev_stage,    // tev stage
    ind_stage,    // indirect stage
    GX_ITF_8,     // format
    (signed_offset) ? GX_ITB_STU : GX_ITB_NONE, // bias
    (replace_mode) ? GX_ITW_0 : GX_ITW_OFF,     // matrix select
    wrap,         // wrap direct S
    wrap,         // wrap direct T
    FALSE,        // add prev stage output?
    FALSE,        // use unmodified TC for LOD?
    GX_ITBA_OFF   // bump alpha select
  );
}

See Also

GXSetTevIndirect

Revision History

2006/03/01 Initial version.


CONFIDENTIAL