Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

379 lines
18 KiB

/******************************Module*Header*******************************\
*
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* !! !!
* !! WARNING: NOT DDK SAMPLE CODE !!
* !! !!
* !! This source code is provided for completeness only and should not be !!
* !! used as sample code for display driver development. Only those sources !!
* !! marked as sample code for a given driver component should be used for !!
* !! development purposes. !!
* !! !!
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*
* Module Name: p3rxdef.h
*
* Content:
*
* Copyright (c) 1994-1999 3Dlabs Inc. Ltd. All rights reserved.
* Copyright (c) 1995-2003 Microsoft Corporation. All rights reserved.
\*****************************************************************************/
// This file containes defines for values that are filled into fields on P3/RX
// The file glintdef.h is the equivalent for glint chips.
// These defines are typically used in conjunction with the macros in bitmac2.h,
// which shift the values to their correct locations.
#ifdef __P3RXDEF
#pragma message ("FILE : "__FILE__" : Multiple Inclusion")
#endif
#define __P3RXDEF
// Dither unit.
// these COLORFORMATs are used in various other places too,
// e.g. the alpha blend unit.
#define P3RX_DITHERMODE_COLORFORMAT_8888 0
#define P3RX_DITHERMODE_COLORFORMAT_4444 1
#define P3RX_DITHERMODE_COLORFORMAT_5551 2
#define P3RX_DITHERMODE_COLORFORMAT_565 3
#define P3RX_DITHERMODE_COLORFORMAT_332 4
#define P3RX_DITHERMODE_COLORFORMAT_CI 15
#define P3RX_DITHERMODE_COLORFORMAT_ILLEGAL -1
// Usually use the COLOR_MODE macro for the default order.
#define P3RX_DITHERMODE_COLORORDER_BGR 0
#define P3RX_DITHERMODE_COLORORDER_RGB 1
// Careful! These are not the way round you would expect.
#define P3RX_DITHERMODE_ALPHADITHER_DITHER 0
#define P3RX_DITHERMODE_ALPHADITHER_ROUND 1
#define P3RX_DITHERMODE_ROUNDINGMODE_TRUNCATE 0
#define P3RX_DITHERMODE_ROUNDINGMODE_ROUNDUP 1
#define P3RX_DITHERMODE_ROUNDINGMODE_ROUNDDOWN 2
// Texture unit bit fields
// Texture Read Mode
#define P3RX_TEXREADMODE_TEXELSIZE_8 0
#define P3RX_TEXREADMODE_TEXELSIZE_16 1
#define P3RX_TEXREADMODE_TEXELSIZE_32 2
#define P3RX_TEXREADMODE_TEXELSIZE_64 3
#define P3RX_TEXREADMODE_TEXTURETYPE_NORMAL 0
#define P3RX_TEXREADMODE_TEXTURETYPE_8BITINDEXED 1
#define P3RX_TEXREADMODE_TEXTURETYPE_422_YVYU 2
#define P3RX_TEXREADMODE_TEXTURETYPE_422_VYUY 3
// Texture index mode
#define P3RX_TEXINDEXMODE_WRAP_CLAMP 0
#define P3RX_TEXINDEXMODE_WRAP_REPEAT 1
#define P3RX_TEXINDEXMODE_WRAP_MIRROR 2
#define P3RX_TEXINDEXMODE_WRAP_CLAMPEDGE 3
#define P3RX_TEXINDEXMODE_MAPTYPE_1D 0
#define P3RX_TEXINDEXMODE_MAPTYPE_2D 1
#define P3RX_TEXINDEXMODE_FILTER_NEAREST 0
#define P3RX_TEXINDEXMODE_FILTER_LINEAR 1
#define P3RX_TEXINDEXMODE_FILTER_NEARESTMIPNEAREST 2
#define P3RX_TEXINDEXMODE_FILTER_NEARESTMIPLINEAR 3
#define P3RX_TEXINDEXMODE_FILTER_LINEARMIPNEAREST 4
#define P3RX_TEXINDEXMODE_FILTER_LINEARMIPLINEAR 5
#define P3RX_TEXINDEXMODE_BIAS_MINUSHALF 0
#define P3RX_TEXINDEXMODE_BIAS_ZERO 1
#define P3RX_TEXINDEXMODE_BIAS_PLUSHALF 2
// Texture read unit
#define P3RX_TEXREADMODE_TEXELSIZE_8 0
#define P3RX_TEXREADMODE_TEXELSIZE_16 1
#define P3RX_TEXREADMODE_TEXELSIZE_32 2
#define P3RX_TEXREADMODE_TEXELSIZE_64SPAN 3
#define P3RX_TEXREADMODE_ORIGIN_TOPLEFT 0
#define P3RX_TEXREADMODE_ORIGIN_BOTTOMLEFT 1
#define P3RX_TEXREADMODE_TEXTURETYPE_NORMAL 0
#define P3RX_TEXREADMODE_TEXTURETYPE_8BITINDEXED 1
#define P3RX_TEXREADMODE_TEXTURETYPE_YVYU422 2
#define P3RX_TEXREADMODE_TEXTURETYPE_VYUY422 3
#define P3RX_TEXREADMODE_BYTESWAP_NONE 0
#define P3RX_TEXREADMODE_BYTESWAP_ABCDEFGH 0
#define P3RX_TEXREADMODE_BYTESWAP_BADCFEHG 1
#define P3RX_TEXREADMODE_BYTESWAP_CDABGHEF 2
#define P3RX_TEXREADMODE_BYTESWAP_DCBAHGFE 3
#define P3RX_TEXREADMODE_BYTESWAP_EFGHABCD 4
#define P3RX_TEXREADMODE_BYTESWAP_FEHGBADC 5
#define P3RX_TEXREADMODE_BYTESWAP_GHEFCDAB 6
#define P3RX_TEXREADMODE_BYTESWAP_HGFEDCBA 7
// Texture Application
#define P3RX_TEXAPP_A_CC 0
#define P3RX_TEXAPP_A_CA 1
#define P3RX_TEXAPP_A_KC 2
#define P3RX_TEXAPP_A_KA 3
#define P3RX_TEXAPP_B_TC 0
#define P3RX_TEXAPP_B_TA 1
#define P3RX_TEXAPP_B_KC 2
#define P3RX_TEXAPP_B_KA 3
#define P3RX_TEXAPP_I_CA 0
#define P3RX_TEXAPP_I_KA 1
#define P3RX_TEXAPP_I_TC 2
#define P3RX_TEXAPP_I_TA 3
#define P3RX_TEXAPP_OPERATION_PASS_A 0
#define P3RX_TEXAPP_OPERATION_PASS_B 1
#define P3RX_TEXAPP_OPERATION_ADD_AB 2
#define P3RX_TEXAPP_OPERATION_MODULATE_AB 3
#define P3RX_TEXAPP_OPERATION_LERP_ABI 4
#define P3RX_TEXAPP_OPERATION_MODULATE_AB_ADD_I 5
#define P3RX_TEXAPP_OPERATION_MODULATE_AI_ADD_B 6
#define P3RX_TEXAPP_OPERATION_MODULATE_BI_ADD_A 7
// Texture composite
// 0 and 1 are the current colour on the second stage,
// and the heightfield emboss mode on the first.
// Note that HEIGHTC=HEIGHTA
#define P3RX_TEXCOMP_OC 0
#define P3RX_TEXCOMP_OA 1
#define P3RX_TEXCOMP_HEIGHTC 0
#define P3RX_TEXCOMP_HEIGHTA 1
#define P3RX_TEXCOMP_CC 2
#define P3RX_TEXCOMP_CA 3
#define P3RX_TEXCOMP_FC 4
#define P3RX_TEXCOMP_FA 5
#define P3RX_TEXCOMP_T0C 6
#define P3RX_TEXCOMP_T0A 7
#define P3RX_TEXCOMP_T1C 8
#define P3RX_TEXCOMP_T1A 9
#define P3RX_TEXCOMP_SUM 10
// HA = height. Same as output.a on first stage.
#define P3RX_TEXCOMP_I_OA 0
#define P3RX_TEXCOMP_I_HA 0
#define P3RX_TEXCOMP_I_CA 1
#define P3RX_TEXCOMP_I_FA 2
#define P3RX_TEXCOMP_I_T0A 3
#define P3RX_TEXCOMP_I_T1A 4
// These need to be renamed to P3RX_TEXCOMP_AB_ARGx for consistency.
#define P3RX_TEXCOMP_ARG1 0
#define P3RX_TEXCOMP_ARG2 1
#define P3RX_TEXCOMP_OPERATION_PASS_A 0
#define P3RX_TEXCOMP_OPERATION_ADD_AB 1
#define P3RX_TEXCOMP_OPERATION_ADDSIGNED_AB 2
#define P3RX_TEXCOMP_OPERATION_SUBTRACT_AB 3
#define P3RX_TEXCOMP_OPERATION_MODULATE_AB 4
#define P3RX_TEXCOMP_OPERATION_LERP_ABI 5
#define P3RX_TEXCOMP_OPERATION_MODULATE_AB_ADD_I 6
#define P3RX_TEXCOMP_OPERATION_MODULATE_AI_ADD_B 7
#define P3RX_TEXCOMP_OPERATION_ADD_AB_SUB_MODULATE_AB 8
#define P3RX_TEXCOMP_OPERATION_MODULATE_SIGNED_AB 9
// These need to be renamed P3RX_TEXCOMP_SCALE_xxx
#define P3RX_TEXCOMP_OPERATION_SCALE_HALF 0
#define P3RX_TEXCOMP_OPERATION_SCALE_ONE 1
#define P3RX_TEXCOMP_OPERATION_SCALE_TWO 2
#define P3RX_TEXCOMP_OPERATION_SCALE_FOUR 3
// Render
#define P3RX_RENDER_PRIMITIVETYPE_LINE 0
#define P3RX_RENDER_PRIMITIVETYPE_TRAPEZOID 1
#define P3RX_RENDER_PRIMITIVETYPE_POINT 2
#define P3RX_RENDER_ANTIALIASINGQUALITY_4X4 0
#define P3RX_RENDER_ANTIALIASINGQUALITY_8X8 1
// 2D Render operations.
#define P3RX_RENDER2D_OPERATION_NORMAL 0
#define P3RX_RENDER2D_OPERATION_SYNC_ON_HOST_DATA 1
#define P3RX_RENDER2D_OPERATION_SYNC_ON_BIT_MASK 2
#define P3RX_RENDER2D_OPERATION_PATCH_ORDER_RENDERING 3
#define P3RX_RENDER2D_SPAN_CONSTANT 0
#define P3RX_RENDER2D_SPAN_VARIABLE 1
// For P3RX_ALPHABLENDxxxMODE
#define P3RX_ALPHABLENDMODE_SRCBLEND_ZERO 0
#define P3RX_ALPHABLENDMODE_SRCBLEND_ONE 1
#define P3RX_ALPHABLENDMODE_SRCBLEND_DSTCOLOR 2
#define P3RX_ALPHABLENDMODE_SRCBLEND_INVDSTCOLOR 3
#define P3RX_ALPHABLENDMODE_SRCBLEND_SRCALPHA 4
#define P3RX_ALPHABLENDMODE_SRCBLEND_INVSRCALPHA 5
#define P3RX_ALPHABLENDMODE_SRCBLEND_DSTALPHA 6
#define P3RX_ALPHABLENDMODE_SRCBLEND_INVDSTALPHA 7
#define P3RX_ALPHABLENDMODE_SRCBLEND_SRCALPHASAT 8
#define P3RX_ALPHABLENDMODE_DSTBLEND_ZERO 0
#define P3RX_ALPHABLENDMODE_DSTBLEND_ONE 1
#define P3RX_ALPHABLENDMODE_DSTBLEND_SRCCOLOR 2
#define P3RX_ALPHABLENDMODE_DSTBLEND_INVSRCCOLOR 3
#define P3RX_ALPHABLENDMODE_DSTBLEND_SRCALPHA 4
#define P3RX_ALPHABLENDMODE_DSTBLEND_INVSRCALPHA 5
#define P3RX_ALPHABLENDMODE_DSTBLEND_DSTALPHA 6
#define P3RX_ALPHABLENDMODE_DSTBLEND_INVDSTALPHA 7
#define P3RX_ALPHABLENDMODE_COLORORDER_BGR 0
#define P3RX_ALPHABLENDMODE_COLORORDER_RGB 1
#define P3RX_ALPHABLENDMODE_ALPHATYPE_OGL 0
#define P3RX_ALPHABLENDMODE_ALPHATYPE_APPLE 1
// Both colour and alpha channels.
#define P3RX_ALPHABLENDMODE_CONVERT_SCALE 0
#define P3RX_ALPHABLENDMODE_CONVERT_SHIFT 1
#define P3RX_ALPHABLENDMODE_OPERATION_ADD 0
#define P3RX_ALPHABLENDMODE_OPERATION_SSUBD 1
#define P3RX_ALPHABLENDMODE_OPERATION_DSUBS 2
#define P3RX_ALPHABLENDMODE_OPERATION_MIN 3
#define P3RX_ALPHABLENDMODE_OPERATION_MAX 4
// Alpha Blending
#define P3RX_ALPHABLENDMODE_COLORFORMAT_8888 P3RX_DITHERMODE_COLORFORMAT_8888
#define P3RX_ALPHABLENDMODE_COLORFORMAT_4444 P3RX_DITHERMODE_COLORFORMAT_4444
#define P3RX_ALPHABLENDMODE_COLORFORMAT_5551 P3RX_DITHERMODE_COLORFORMAT_5551
#define P3RX_ALPHABLENDMODE_COLORFORMAT_565 P3RX_DITHERMODE_COLORFORMAT_565
#define P3RX_ALPHABLENDMODE_COLORFORMAT_332 P3RX_DITHERMODE_COLORFORMAT_332
#define P3RX_ALPHABLENDMODE_COLORFORMAT_CI P3RX_DITHERMODE_COLORFORMAT_CI
#define P3RX_ALPHABLENDMODE_COLORFORMAT_ILLEGAL P3RX_DITHERMODE_COLORFORMAT_ILLEGAL
// For P3RX_CHROMATESTMODE_SOURCE
#define P3RX_CHROMATESTMODE_SOURCE_FBSOURCEDATA 0
#define P3RX_CHROMATESTMODE_SOURCE_FBDATA 1
#define P3RX_CHROMATESTMODE_SOURCE_INPUTCOLOR 2
#define P3RX_CHROMATESTMODE_SOURCE_OUTPUTCOLOR 3
// For P3RX_CHROMATESTMODE_FAILACTION and P3_CHROMATESTMODE_PASSACTION
#define P3RX_CHROMATESTMODE_ACTION_PASS 0
#define P3RX_CHROMATESTMODE_ACTION_REJECT 1
#define P3RX_CHROMATESTMODE_ACTION_SUBSTITUTEPASSCOLOR 2
#define P3RX_CHROMATESTMODE_ACTION_SUBSTITUTEFAILCOLOR 3
// For P3RX_TEXFILTERMODE_ALPHAMAPSENSEx
#define P3RX_ALPHAMAPSENSE_OUTOFRANGE 0
#define P3RX_ALPHAMAPSENSE_INRANGE 1
// For P3RX_TEXCOORDMODE_ WRAPS, WRAPT, WRAPS1, WRAPT1
#define P3RX_TEXCOORDMODE_WRAP_CLAMP 0
#define P3RX_TEXCOORDMODE_WRAP_REPEAT 1
#define P3RX_TEXCOORDMODE_WRAP_MIRROR 2
#define P3RX_TEXCOORDMODE_OPERATION_2D 0
#define P3RX_TEXCOORDMODE_OPERATION_3D 1
#define P3RX_TEXCOORDMODE_TEXTUREMAPTYPE_1D 0
#define P3RX_TEXCOORDMODE_TEXTUREMAPTYPE_2D 1
// LUT Mode
#define P3RX_LUTMODE_INCOLORORDER_BGR 0
#define P3RX_LUTMODE_INCOLORORDER_RGB 1
#define P3RX_LUTMODE_LOADFORMAT_COPY 0
#define P3RX_LUTMODE_LOADFORMAT_565REPLICATE 1
#define P3RX_LUTMODE_LOADFORMAT_5551REPLICATE 2
#define P3RX_LUTMODE_LOADCOLORORDER_BGR 0
#define P3RX_LUTMODE_LOADCOLORORDER_RGB 1
#define P3RX_LUTMODE_FRAGMENTOP_NONE 0
#define P3RX_LUTMODE_FRAGMENTOP_INDEXEDTEXTURE 1
#define P3RX_LUTMODE_FRAGMENTOP_TRANSLATE8TO32 2
#define P3RX_LUTMODE_FRAGMENTOP_TRANSLATE32TO32 3
#define P3RX_LUTMODE_FRAGMENTOP_MOTIONCOMP 4
#define P3RX_LUTMODE_FRAGMENTOP_PATTERN 5
#define P3RX_LUTMODE_SPANOP_NONE 0
#define P3RX_LUTMODE_SPANOP_SPANPATTERN 1
#define P3RX_LUTMODE_SPANOP_TRANSLATE8TO8 2
#define P3RX_LUTMODE_SPANOP_TRANSLATE8TO16 3
#define P3RX_LUTMODE_SPANOP_TRANSLATE8TO32 4
#define P3RX_LUTMODE_SPANOP_TRANSLATE32TO32 5
// Used for P3RX_LUTMODE_SPAN[V|C]CXALIGN
#define P3RX_LUTMODE_ALIGNMENT_ABSOLOUTE 0
#define P3RX_LUTMODE_ALIGNMENT_RELATIVE 1
// Alpha test unit
#define P3RX_ANTIALIASMODE_COLORMODE_RGBA 0
#define P3RX_ANTIALIASMODE_COLORMODE_CI 1
#define P3RX_ALPHATESTMODE_COMPARE_NEVER 0
#define P3RX_ALPHATESTMODE_COMPARE_LESS 1
#define P3RX_ALPHATESTMODE_COMPARE_EQUAL 2
#define P3RX_ALPHATESTMODE_COMPARE_LESSEQUAL 3
#define P3RX_ALPHATESTMODE_COMPARE_GREATER 4
#define P3RX_ALPHATESTMODE_COMPARE_NOTEQUAL 5
#define P3RX_ALPHATESTMODE_COMPARE_GREATEREQUAL 6
#define P3RX_ALPHATESTMODE_COMPARE_ALWAYS 7
// Fogging
#define P3RX_FOGMODE_COLORMODE_RGB 0
#define P3RX_FOGMODE_COLORMODE_CI 1
// Framebuffer write mode
#define P3RX_FBWRITEMODE_ORIGIN_TOPLEFT 0
#define P3RX_FBWRITEMODE_ORIGIN_BOTTOMLEFT 1
// Shared
#define P3RX_STRIPE_1 0
#define P3RX_STRIPE_2 1
#define P3RX_STRIPE_4 2
#define P3RX_STRIPE_8 3
#define P3RX_STRIPE_16 4
#define P3RX_STRIPE_32 5
#define P3RX_STRIPE_64 6
#define P3RX_STRIPE_128 7
#define P3RX_LAYOUT_LINEAR 0
#define P3RX_LAYOUT_PATCH64 1
#define P3RX_LAYOUT_PATCH32_2 2
#define P3RX_LAYOUT_PATCH2 3
// Color DDA fields
#define P3RX_COLORDDA_FLATSHADE 0
#define P3RX_COLORDDA_GOURAUDSHADE 1
#define P3RX_DEPTH_WIDTH_16 0
#define P3RX_DEPTH_WIDTH_24 1
#define P3RX_DEPTH_WIDTH_32 2
#define P3RX_DEPTH_WIDTH_15 3
#define P3RX_STENCIL_WIDTH_0 0
#define P3RX_STENCIL_WIDTH_1 1
#define P3RX_STENCIL_WIDTH_2 2
#define P3RX_STENCIL_WIDTH_3 3
#define P3RX_STENCIL_WIDTH_4 4
#define P3RX_STENCIL_WIDTH_5 5
#define P3RX_STENCIL_WIDTH_6 6
#define P3RX_STENCIL_WIDTH_7 7
#define P3RX_STENCIL_WIDTH_8 8
#define P3RX_STENCIL_POSITION_16 0
#define P3RX_STENCIL_POSITION_17 1
#define P3RX_STENCIL_POSITION_18 2
#define P3RX_STENCIL_POSITION_19 3
#define P3RX_STENCIL_POSITION_20 4
#define P3RX_STENCIL_POSITION_21 5
#define P3RX_STENCIL_POSITION_22 6
#define P3RX_STENCIL_POSITION_23 7
#define P3RX_STENCIL_POSITION_24 8
#define P3RX_STENCIL_POSITION_25 9
#define P3RX_STENCIL_POSITION_26 10
#define P3RX_STENCIL_POSITION_27 11
#define P3RX_STENCIL_POSITION_28 12
#define P3RX_STENCIL_POSITION_29 13
#define P3RX_STENCIL_POSITION_30 14
#define P3RX_STENCIL_POSITION_31 15
#define P3RX_STENCIL_POSITION_32 16
#define P3RX_STENCIL_POSITION_33 17
#define P3RX_STENCIL_POSITION_34 18
#define P3RX_STENCIL_POSITION_35 19
#define P3RX_STENCIL_POSITION_36 20
#define P3RX_STENCIL_POSITION_37 21
#define P3RX_STENCIL_POSITION_38 22
#define P3RX_STENCIL_POSITION_39 23
// FilterMode
#define P3RX_FILTERMODE_BYTESWAP_ABCD 0
#define P3RX_FILTERMODE_BYTESWAP_BADC 1
#define P3RX_FILTERMODE_BYTESWAP_CDAB 2
#define P3RX_FILTERMODE_BYTESWAP_DCBA 3