G3*_PolygonAttr

C Specification

#include <nitro/gx/g3imm.h>
#include <nitro/gx/g3b.h>
#include <nitro/gx/g3c.h>
void G3_PolygonAttr( int light, GXPolygonMode polyMode, GXCull cullMode, int polygonID, int alpha, int misc );
// Below are APIs for creating the display list (command list): void G3B_PolygonAttr(GXDLInfo* info, ...); void G3C_PolygonAttr(GXDLInfo* info, ...); void G3BS_PolygonAttr(GXDLInfo* info, ...); void G3CS_PolygonAttr(GXDLInfo* info, ...);

Arguments

info Command List Information
light 4-bit mask to specify the light to illuminate
polyMode Specifies polygon mode
cullMode Specifies the screen to cull
polygonID   Specifies the polygon ID
alpha Specifies the α value
misc Bit field to specify other polygon attributes

Return Values

None.

Description

This function sets the polygon attribute values.
light is the 4-bit flag that specifies, in order from the lower bit of the lower 4 bits, whether Light 0, Light 1, Light 2, and Light 3 are ON/OFF. polyMode is the argument that specifies the polygon mode in GXPolygonMode type. cullMode is the argument that specifies the polygon culling method in GXCull type. polygonID is the argument that specifies the polygon ID between 0 - 63. Used when rendering translucent polygons, shadow polygons, and edge marking. alpha is the argument that specifies the α value for a polygon between 0 - 31. A setting of 31 displays a opaque polygon; a setting of 0 displays a wireframe (use the settings of G3X_AlphaTest to hide). Settings between 1 - 30 display translucent polygons. misc is a bit field comprising the other attribute flags, and passes the logical sum of GXPolygonAttrMisc type values.

GX_POLYGONMODE_MODULATE Modulation mode
GX_POLYGONMODE_DECAL Decal mode
GX_POLYGONMODE_TOON Toon shading/highlight shading mode
GX_POLYGONMODE_SHADOW Shadow polygon mode

GX_CULL_ALL Do not show on either plane
GX_CULL_FRONT Do not show front plane
GX_CULL_BACK Do not show back plane
GX_CULL_NONE Show both planes

GX_POLYGON_ATTR_MISC_NONE Indicates that nothing is visible.
GX_POLYGON_ATTR_MISC_XLU_DEPTH_UPDATE Update the depth buffer when rendering translucent polygons.
GX_POLYGON_ATTR_MISC_FAR_CLIPPING Clip if the polygon intersects the FAR plane (delete if intersects when not specified).
GX_POLYGON_ATTR_MISC_DISP_1DOT Show 1-dot polygons. See also G3X_SetDisp1DotDepth.
GX_POLYGON_ATTR_MISC_DEPTHTEST_DECAL Renders when the depth value of the fragment matches the depth value in the depth buffer. When not specified, renders when smaller than the depth value.
GX_POLYGON_ATTR_MISC_FOG The rendering engine performs fog blending.

The following indicate type definitions for GXPolygonMode, GXCull, and GXPolygonAttrMisc types.

typedef enum
{
GX_POLYGONMODE_MODULATE = 0,
GX_POLYGONMODE_DECAL = 1,
GX_POLYGONMODE_TOON = 2,
GX_POLYGONMODE_SHADOW = 3
}
GXPolygonMode;

typedef enum
{
GX_CULL_ALL = 0,
GX_CULL_FRONT = 1,
GX_CULL_BACK = 2,
GX_CULL_NONE = 3
}
GXCull;

typedef enum
{
GX_POLYGON_ATTR_MISC_NONE = 0,
GX_POLYGON_ATTR_MISC_XLU_DEPTH_UPDATE = 1 << REG_G3_POLYGON_ATTR_XL_SHIFT,
GX_POLYGON_ATTR_MISC_FAR_CLIPPING = 1 << REG_G3_POLYGON_ATTR_FC_SHIFT,
GX_POLYGON_ATTR_MISC_DISP_1DOT = 1 << REG_G3_POLYGON_ATTR_D1_SHIFT,
GX_POLYGON_ATTR_MISC_DEPTHTEST_DECAL = 1 << REG_G3_POLYGON_ATTR_DT_SHIFT,
GX_POLYGON_ATTR_MISC_FOG = 1 << REG_G3_POLYGON_ATTR_FE_SHIFT
}
GXPolygonAttrMisc;

See Also

Revision History

01/19/2004 Initial version.