📄 3dr.h
字号:
typedef R3dFixedVtxTexClr_t FAR *FPR3dFixedVtxTexClr_t;
typedef R3dFloatVtx_t FAR *FPR3dFloatVtx_t;
typedef R3dFloatVtxClr_t FAR *FPR3dFloatVtxClr_t;
typedef R3dFloatVtxTex_t FAR *FPR3dFloatVtxTex_t;
typedef R3dFloatVtxTexClr_t FAR *FPR3dFloatVtxTexClr_t;
typedef R3dMsgHdr_t *LPR3dMsgHdr_t;
typedef R3dMsgGen_t *LPR3dMsgGen_t;
typedef R3dMsgTex_t *LPR3dMsgTex_t;
typedef R3dMsgBmp_t *LPR3dMsgBmp_t;
typedef R3dMsgPkt_t *LPR3dMsgPkt_t;
typedef R3dPktPrm_t *LPR3dPktPrm_t;
typedef R3dPktSta_t *LPR3dPktSta_t;
typedef R3dPktGen_t *LPR3dPktGen_t;
typedef R3dMsgHdr_t FAR *FPR3dMsgHdr_t;
typedef R3dMsgGen_t FAR *FPR3dMsgGen_t;
typedef R3dMsgTex_t FAR *FPR3dMsgTex_t;
typedef R3dMsgBmp_t FAR *FPR3dMsgBmp_t;
typedef R3dMsgPkt_t FAR *FPR3dMsgPkt_t;
typedef R3dPktPrm_t FAR *FPR3dPktPrm_t;
typedef R3dPktSta_t FAR *FPR3dPktSta_t;
typedef R3dPktGen_t FAR *FPR3dPktGen_t;
#endif /* WIN16 */
#if WIN16
typedef R3dFixedVtx_t FAR *LPR3dFixedVtx_t;
typedef R3dFixedVtxClr_t FAR *LPR3dFixedVtxClr_t;
typedef R3dFixedVtxTex_t FAR *LPR3dFixedVtxTex_t;
typedef R3dFixedVtxTexClr_t FAR *LPR3dFixedVtxTexClr_t;
typedef R3dFloatVtx_t FAR *LPR3dFloatVtx_t;
typedef R3dFloatVtxClr_t FAR *LPR3dFloatVtxClr_t;
typedef R3dFloatVtxTex_t FAR *LPR3dFloatVtxTex_t;
typedef R3dFloatVtxTexClr_t FAR *LPR3dFloatVtxTexClr_t;
typedef R3dFixedVtx_t FAR *FPR3dFixedVtx_t;
typedef R3dFixedVtxClr_t FAR *FPR3dFixedVtxClr_t;
typedef R3dFixedVtxTex_t FAR *FPR3dFixedVtxTex_t;
typedef R3dFixedVtxTexClr_t FAR *FPR3dFixedVtxTexClr_t;
typedef R3dFloatVtx_t FAR *FPR3dFloatVtx_t;
typedef R3dFloatVtxClr_t FAR *FPR3dFloatVtxClr_t;
typedef R3dFloatVtxTex_t FAR *FPR3dFloatVtxTex_t;
typedef R3dFloatVtxTexClr_t FAR *FPR3dFloatVtxTexClr_t;
typedef R3dMsgHdr_t FAR *LPR3dMsgHdr_t;
typedef R3dMsgGen_t FAR *LPR3dMsgGen_t;
typedef R3dMsgTex_t FAR *LPR3dMsgTex_t;
typedef R3dMsgBmp_t FAR *LPR3dMsgBmp_t;
typedef R3dMsgPkt_t FAR *LPR3dMsgPkt_t;
typedef R3dPktPrm_t FAR *LPR3dPktPrm_t;
typedef R3dPktSta_t FAR *LPR3dPktSta_t;
typedef R3dPktGen_t FAR *LPR3dPktGen_t;
typedef R3dMsgHdr_t FAR *FPR3dMsgHdr_t;
typedef R3dMsgGen_t FAR *FPR3dMsgGen_t;
typedef R3dMsgTex_t FAR *FPR3dMsgTex_t;
typedef R3dMsgBmp_t FAR *FPR3dMsgBmp_t;
typedef R3dMsgPkt_t FAR *FPR3dMsgPkt_t;
typedef R3dPktPrm_t FAR *FPR3dPktPrm_t;
typedef R3dPktSta_t FAR *FPR3dPktSta_t;
typedef R3dPktGen_t FAR *FPR3dPktGen_t;
#endif /* WIN16 */
#if WIN32
typedef R3dFixedVtx_t *LPR3dFixedVtx_t;
typedef R3dFixedVtxClr_t *LPR3dFixedVtxClr_t;
typedef R3dFixedVtxTex_t *LPR3dFixedVtxTex_t;
typedef R3dFixedVtxTexClr_t *LPR3dFixedVtxTexClr_t;
typedef R3dFloatVtx_t *LPR3dFloatVtx_t;
typedef R3dFloatVtxClr_t *LPR3dFloatVtxClr_t;
typedef R3dFloatVtxTex_t *LPR3dFloatVtxTex_t;
typedef R3dFloatVtxTexClr_t *LPR3dFloatVtxTexClr_t;
typedef R3dFixedVtx_t *FPR3dFixedVtx_t;
typedef R3dFixedVtxClr_t *FPR3dFixedVtxClr_t;
typedef R3dFixedVtxTex_t *FPR3dFixedVtxTex_t;
typedef R3dFixedVtxTexClr_t *FPR3dFixedVtxTexClr_t;
typedef R3dFloatVtx_t *FPR3dFloatVtx_t;
typedef R3dFloatVtxClr_t *FPR3dFloatVtxClr_t;
typedef R3dFloatVtxTex_t *FPR3dFloatVtxTex_t;
typedef R3dFloatVtxTexClr_t *FPR3dFloatVtxTexClr_t;
typedef R3dMsgHdr_t *LPR3dMsgHdr_t;
typedef R3dMsgGen_t *LPR3dMsgGen_t;
typedef R3dMsgTex_t *LPR3dMsgTex_t;
typedef R3dMsgBmp_t *LPR3dMsgBmp_t;
typedef R3dMsgPkt_t *LPR3dMsgPkt_t;
typedef R3dPktPrm_t *LPR3dPktPrm_t;
typedef R3dPktSta_t *LPR3dPktSta_t;
typedef R3dPktGen_t *LPR3dPktGen_t;
typedef R3dMsgHdr_t *FPR3dMsgHdr_t;
typedef R3dMsgGen_t *FPR3dMsgGen_t;
typedef R3dMsgTex_t *FPR3dMsgTex_t;
typedef R3dMsgBmp_t *FPR3dMsgBmp_t;
typedef R3dMsgPkt_t *FPR3dMsgPkt_t;
typedef R3dPktPrm_t *FPR3dPktPrm_t;
typedef R3dPktSta_t *FPR3dPktSta_t;
typedef R3dPktGen_t *FPR3dPktGen_t;
#endif /* WIN32 */
#ifdef R3D_TYPES_ONLY
#else /* R3D_TYPES_ONLY */
/*
// 3DR - Definitions
*/
/*
// These are the various packet identifers used by 3DR.
// These are used to create general packets.
// These values are used in R3dMsgPtr_t.
// Pick ONE of ...
*/
#define R3D_PKT_END 0
#define R3D_PKT_SETSTATE 1
#define R3D_PKT_CLEARBUFFERS 2
#define R3D_PKT_SWAPBUFFERS 3
#define R3D_PKT_POINTS 4
#define R3D_PKT_LINES 5
#define R3D_PKT_POLYLINE 6
#define R3D_PKT_TRIANGLES 7
#define R3D_PKT_TRISTRIP 8
#define R3D_PKT_POLYGON 9
#define R3D_PKT_QUADS 10
#define R3D_PKT_QUADSTRIP 11
/*
// These are used by R3dPrimitive()
// Pick ONE of ...
*/
#define R3D_PRM_POINTS R3D_PKT_POINTS
#define R3D_PRM_LINES R3D_PKT_LINES
#define R3D_PRM_POLYLINE R3D_PKT_POLYLINE
#define R3D_PRM_TRIANGLES R3D_PKT_TRIANGLES
#define R3D_PRM_TRISTRIP R3D_PKT_TRISTRIP
#define R3D_PRM_POLYGON R3D_PKT_POLYGON
/*
// These are used by R3dGetState() and R3dSetState()
// Pick ONE of ...
*/
/*
// Enumerated states.
// >> Possible values mentioned in the comments section.
// Pick ONE of ...
*/
#define R3D_STA_ENABLES 1 /* use R3D_SE_... */
#define R3D_STA_DISABLES 2 /* use R3D_SE_... */
#define R3D_STA_DRAW_BUFFER 3 /* use R3D_DB_... */
#define R3D_STA_Z_FUNCTION 4 /* use R3D_ZF_... */
#define R3D_STA_SRC_BLEND_FUNCTION 5 /* use R3D_BF_... */
#define R3D_STA_DST_BLEND_FUNCTION 6 /* use R3D_BF_... */
#define R3D_STA_TEX_FILTER 7 /* use R3D_TX_... */
#define R3D_STA_TEX_FUNCTION 8 /* use R3D_TF_... */
#define R3D_STA_ROP_FUNCTION 9 /* use R3D_RF_... */
/*
// Arbitary valued states.
// Pick ONE of ...
*/
#define R3D_STA_AREA_MASK 16 /* Area pattern bitmask */
#define R3D_STA_LINE_MASK 48 /* Line pattern bitmask */
#define R3D_STA_PIXEL_MASK 49 /* RGBA or bitmask */
#define R3D_STA_FG_COLOR 50 /* long, RGBA or index */
#define R3D_STA_BG_COLOR 51 /* long, RGBA or index */
#define R3D_STA_FG_DEPTH 52 /* FIXED 16.16 for raster*/
#define R3D_STA_BG_DEPTH 53 /* FIXED 16.16 for zclear*/
#define R3D_STA_TEX_LUMINANCE 54 /* >> Will Go away! */
#define R3D_STA_TEX_ID 55 /* Handle for current texture.*/
#define R3D_STA_SCISSOR_LEFT 56
#define R3D_STA_SCISSOR_TOP 57
#define R3D_STA_SCISSOR_RIGHT 58 /* right,bottom, not inclusive*/
#define R3D_STA_SCISSOR_BOTTOM 59 /* Validity Check done here. */
/*
// These are 3DR message type definitions
// Pick ONE of ...
*/
#define R3D_MSG_NOP 0
#define R3D_MSG_CREATE_RC 1
#define R3D_MSG_DELETE_RC 2
#define R3D_MSG_GET_STATE 8
#define R3D_MSG_NEW_TEXTURE 9
#define R3D_MSG_LOAD_TEXTURE 10
#define R3D_MSG_FREE_TEXTURE 11
#define R3D_MSG_NEW_BITMAP 12
#define R3D_MSG_LOAD_BITMAP 13
#define R3D_MSG_FREE_BITMAP 14
#define R3D_MSG_PACKET 16
#define R3D_MSG_BITMAP 17
#define R3D_MSG_CACHED_BITMAP 18
#define R3D_MSG_SET_EXACT_PALETTE_ENTRY 32
#define R3D_MSG_SET_APPROX_PALETTE_ENTRY 33
#define R3D_MSG_APPLY_NEW_PALETTE 34
/*
// Possible values for: R3D_STA_ENABLES
// R3D_STA_DISABLES
// Logical OR of ...
*/
#define R3D_SE_SHADING 0x00000001L /* interpolate r,g,b, a */
#define R3D_SE_TEXTURING 0x00000002L /* interpolate u,v,w */
#define R3D_SE_MODULATION 0x00000004L /* modulate color & texture */
#define R3D_SE_Z_BUFFERING 0x00000008L /* interpolate z and compare */
#define R3D_SE_ANTIALIASING 0x00000010L /* generate subpixel alpha */
#define R3D_SE_PIXEL_MASKING 0x00000020L /* selective pixel update */
#define R3D_SE_Z_MASKING 0x00000040L /* selective z update */
#define R3D_SE_PATTERNING 0x00000080L /* selective pixel & z update */
#define R3D_SE_SCISSORING 0x00000100L /* selective pixel & z update */
#define R3D_SE_CLIPPING 0x00000200L /* selective pixel & z update */
#define R3D_SE_BLENDING 0x00000400L /* per-pixel operation */
#define R3D_SE_RASTEROP 0x00000800L /* per-pixel operation */
#define R3D_SE_DITHERING 0x00001000L /* per-pixel operation */
#define R3D_SE_FILTERING 0x00002000L /* texture filter control */
#define R3D_SE_TRANSPARENCY 0x00004000L /* texel use control */
/*
// Possible values for: R3D_STA_DRAW_BUFFER
// Pick one of ...
*/
#define R3D_DB_FRONT 0
#define R3D_DB_BACK 1
#ifdef R3D_FUTURES
#define R3D_DB_FRONT_RIGHT 2
#define R3D_DB_BACK_RIGHT 3
#endif /* R3D_FUTURES */
/*
// Possible values for: R3D_STA_Z_FUNCTION
// Pick one of ...
*/
#define R3D_ZF_NEVER 0
#define R3D_ZF_LT 1
#define R3D_ZF_EQ 2
#define R3D_ZF_LE 3
#define R3D_ZF_GT 4
#define R3D_ZF_NE 5
#define R3D_ZF_GE 6
#define R3D_ZF_ALWAYS 7
/*
// Possible values for: R3D_STA_SRC_BLEND_FUNCTION
// R3D_STA_DST_BLEND_FUNCTION
// Pick one of ...
*/
#define R3D_BF_ZERO 0
#define R3D_BF_ONE 1
#define R3D_BF_SRC 2 /* Only R3D_STA_DST_BLEND_FUNCTION */
#define R3D_BF_SRC_INV 3 /* Only R3D_STA_DST_BLEND_FUNCTION */
#define R3D_BF_SRC_ALPHA 4
#define R3D_BF_SRC_ALPHA_INV 5
#define R3D_BF_DST 6 /* Only R3D_STA_SRC_BLEND_FUNCTION */
#define R3D_BF_DST_INV 7 /* Only R3D_STA_SRC_BLEND_FUNCTION */
#define R3D_BF_DST_ALPHA 8
#define R3D_BF_DST_ALPHA_INV 9
/*
// Possible values for: R3D_STA_ROP_FUNCTION
// Pick one of ...
*/
#define R3D_RF_CLEAR 0
#define R3D_RF_AND 1
#define R3D_RF_AND_REVERSE 2
#define R3D_RF_COPY 3
#define R3D_RF_AND_INVERT 4
#define R3D_RF_NOOP 5
#define R3D_RF_XOR 6
#define R3D_RF_OR 7
#define R3D_RF_NOR 8
#define R3D_RF_EQUIV 9
#define R3D_RF_INVERT 10
#define R3D_RF_OR_REVERSE 11
#define R3D_RF_COPY_INVERT 12
#define R3D_RF_OR_INVERT 13
#define R3D_RF_NAND 14
#define R3D_RF_SET 15
/*
// Possible values for: R3D_STA_TEX_FUNCTION
// Pick ONE of ...
*/
#define R3D_TF_REDUCE 1
#define R3D_TF_MULTIPLY 2
#define R3D_TF_SHADE 3
/*
// Possible values for: R3D_STA_TEX_FILTER
// Pick ONE of ...
*/
#define R3D_TX_BILINEAR 1 /* interpolate 4 pixels */
#define R3D_TX_CUSTOM 9 /* your favorite filter */
#define R3D_TX_MIPMAP_NEAREST 10 /* nearest mipmap */
#define R3D_TX_MIPMAP_LINEAR 11 /* interpolate between mipmaps */
#define R3D_TX_MIPMAP_BILINEAR 12 /* interpolate 4x within mipmap */
#define R3D_TX_MIPMAP_TRILINEAR 13 /* interpolate mipmaps,4 pixels */
/*
// Possible values for: RCInfo in the R3dCreateRC() prototype below
// Logical OR of ...
*/
#define R3D_RI_DEFAULT 0x0000
#define R3D_RI_DOUBLE_BUFFER 0x0001
#define R3D_RI_COLOR_INDEXED 0x0002
#define R3D_RI_EXTENDED 0x0004
#define R3D_RI_RESERVED0 0x0008
#define R3D_RI_RESERVED1 0x0010
#define R3D_RI_RESERVED2 0x0020
#define R3D_RI_RESERVED3 0x0040
#define R3D_RI_RESERVED4 0x0080
#define R3D_RI_RESERVED5 0x0100
#define R3D_RI_RESERVED6 0x0200
#define R3D_RI_RESERVED7 0x0400
#define R3D_RI_RESERVED8 0x0800
#ifdef R3D_FUTURES
#define R3D_RI_STEREO R3D_RI_RESERVED0
#define R3D_RI_ZBUFFER R3D_RI_RESERVED8
#endif /* R3D_FUTURES */
/*
// Possible values for : VtxInfo in the R3dPrimitive() prototype below
// Logical OR of ...
*/
#define R3D_VI_FIXED 0x0000
#define R3D_VI_FLOAT 0x0001
#define R3D_VI_COLOR 0x0002
#define R3D_VI_TEXTURE 0x0004
/*
// Possible values for: BmpInfo in the R3dBitmap() prototype below
// Logical OR of ...
*/
#define R3D_BI_INDEX 0x0001
#define R3D_BI_CHROMAKEY 0x0002
#define R3D_BI_ALPHA 0x0004
/*
// Possible values for: SwapInfo in the R3dSwapBuffers() prototype below
// Logical OR of ...
*/
#ifdef R3D_FUTURES
#define R3D_SI_LEFT 0x0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -