Loading [MathJax]/extensions/MathMenu.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
GDIndirect.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_GD_INDIRECT_H_
2#define _DOLPHIN_GD_INDIRECT_H_
3
4#include <dolphin/types.h>
5#include <dolphin/gx/GXEnum.h>
6#include <dolphin/mtx.h>
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12#define BP_TEV_INDIRECT(ind_stage, format, bias_sel, alpha_sel, mtx_sel, wrap_s, wrap_t, utc_lod, add_prev, id) \
13 ( \
14 (u32)(ind_stage) << 0 | \
15 (u32)(format) << 2 | \
16 (u32)(bias_sel) << 4 | \
17 (u32)(alpha_sel) << 7 | \
18 (u32)(mtx_sel) << 9 | \
19 (u32)(wrap_s) << 13 | \
20 (u32)(wrap_t) << 16 | \
21 (u32)(utc_lod) << 19 | \
22 (u32)(add_prev) << 20 | \
23 (u32)(id) << 24 \
24 )
25
26#define BP_IND_MTX(m0, m1, scale_exp, id) \
27 ( \
28 (u32)(m0) << 0 | \
29 (u32)(m1) << 11 | \
30 (u32)(scale_exp) << 22 | \
31 (u32)(id) << 24 \
32 )
33
34#define BP_IND_TEXCOORD_SCALE(scaleS0, scaleT0, scaleS1, scaleT1, id) \
35 ( \
36 (u32)(scaleS0) << 0 | \
37 (u32)(scaleT0) << 4 | \
38 (u32)(scaleS1) << 8 | \
39 (u32)(scaleT1) << 12 | \
40 (u32)(id) << 24 \
41 )
42
43#define BP_IND_TEX_ORDER(map0, coord0, map1, coord1, map2, coord2, map3, coord3, id) \
44 ( \
45 (u32)(map0) << 0 | \
46 (u32)(coord0) << 3 | \
47 (u32)(map1) << 6 | \
48 (u32)(coord1) << 9 | \
49 (u32)(map2) << 12 | \
50 (u32)(coord2) << 15 | \
51 (u32)(map3) << 18 | \
52 (u32)(coord3) << 21 | \
53 (u32)(id) << 24 \
54 )
55
56#define BP_IND_MASK(mask, id) \
57 ( \
58 (u32)(mask) << 0 | \
59 (u32)(id) << 24 \
60 )
61
62void GDSetTevIndirect(GXTevStageID tev_stage, GXIndTexStageID ind_stage,
63 GXIndTexFormat format, GXIndTexBiasSel bias_sel,
64 GXIndTexMtxID matrix_sel, GXIndTexWrap wrap_s,
65 GXIndTexWrap wrap_t, u8 add_prev, u8 utc_lod,
66 GXIndTexAlphaSel alpha_sel);
67void GDSetIndTexMtx(GXIndTexMtxID mtx_id, const f32 offset[2][3], s8 scale_exp);
68void GDSetIndTexCoordScale(GXIndTexStageID indStageEven, GXIndTexScale scaleS0,
69 GXIndTexScale scaleT0, GXIndTexScale scaleS1,
70 GXIndTexScale scaleT1);
71void GDSetIndTexOrder(GXTexCoordID texCoord0, GXTexMapID texMap0,
72 GXTexCoordID texCoord1, GXTexMapID texMap1,
73 GXTexCoordID texCoord2, GXTexMapID texMap2,
74 GXTexCoordID texCoord3, GXTexMapID texMap3);
75void GDSetTevDirect(GXTevStageID tev_stage);
76void GDSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u8 signed_offset, u8 replace_mode, GXIndTexMtxID matrix_sel);
77void GDSetTevIndTile(GXTevStageID tev_stage, GXIndTexStageID ind_stage,
78 u16 tilesize_s, u16 tilesize_t, u16 tilespacing_s,
79 u16 tilespacing_t, GXIndTexFormat format,
80 GXIndTexMtxID matrix_sel, GXIndTexBiasSel bias_sel,
81 GXIndTexAlphaSel alpha_sel);
82void GDSetTevIndBumpST(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel);
83void GDSetTevIndBumpXYZ(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel);
84void GDSetTevIndRepeat(GXTevStageID tev_stage);
85void __GDSetIndTexMask(u32 mask);
86
87#ifdef __cplusplus
88}
89#endif
90
91#endif
void GDSetTevIndTile(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u16 tilesize_s, u16 tilesize_t, u16 tilespacing_s, u16 tilespacing_t, GXIndTexFormat format, GXIndTexMtxID matrix_sel, GXIndTexBiasSel bias_sel, GXIndTexAlphaSel alpha_sel)
Definition GDIndirect.c:114
void GDSetIndTexMtx(GXIndTexMtxID mtx_id, const f32 offset[2][3], s8 scale_exp)
Definition GDIndirect.c:23
void GDSetTevIndirect(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexFormat format, GXIndTexBiasSel bias_sel, GXIndTexMtxID matrix_sel, GXIndTexWrap wrap_s, GXIndTexWrap wrap_t, u8 add_prev, u8 utc_lod, GXIndTexAlphaSel alpha_sel)
Definition GDIndirect.c:4
void __GDSetIndTexMask(u32 mask)
Definition GDIndirect.c:268
void GDSetIndTexOrder(GXTexCoordID texCoord0, GXTexMapID texMap0, GXTexCoordID texCoord1, GXTexMapID texMap1, GXTexCoordID texCoord2, GXTexMapID texMap2, GXTexCoordID texCoord3, GXTexMapID texMap3)
Definition GDIndirect.c:77
void GDSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u8 signed_offset, u8 replace_mode, GXIndTexMtxID matrix_sel)
Definition GDIndirect.c:98
void GDSetTevIndRepeat(GXTevStageID tev_stage)
Definition GDIndirect.c:255
void GDSetTevDirect(GXTevStageID tev_stage)
Definition GDIndirect.c:94
void GDSetTevIndBumpST(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel)
Definition GDIndirect.c:186
void GDSetIndTexCoordScale(GXIndTexStageID indStageEven, GXIndTexScale scaleS0, GXIndTexScale scaleT0, GXIndTexScale scaleS1, GXIndTexScale scaleT1)
Definition GDIndirect.c:65
void GDSetTevIndBumpXYZ(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel)
Definition GDIndirect.c:242
enum _GXIndTexBiasSel GXIndTexBiasSel
enum _GXTexCoordID GXTexCoordID
enum _GXIndTexFormat GXIndTexFormat
enum _GXIndTexAlphaSel GXIndTexAlphaSel
enum _GXIndTexScale GXIndTexScale
enum _GXIndTexStageID GXIndTexStageID
enum _GXTexMapID GXTexMapID
enum _GXIndTexMtxID GXIndTexMtxID
enum _GXTevStageID GXTevStageID
enum _GXIndTexWrap GXIndTexWrap
signed char s8
Definition types.h:4
unsigned long u32
Definition types.h:9
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7
unsigned char u8
Definition types.h:5