1 /*---------------------------------------------------------------------------*
2   Project:  Dolphin GX library
3   File:	    GXBump.h
4 
5   Copyright 1998- 2002 Nintendo. All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Log: GXBump.h,v $
14   Revision 1.2  2006/02/04 11:56:46  hashida
15   (none)
16 
17   Revision 1.1.1.1  2005/12/29 06:53:28  hiratsu
18   Initial import.
19 
20   Revision 1.1.1.1  2005/05/12 02:41:07  yasuh-to
21   Ported from dolphin source tree.
22 
23 
24     4     2003/03/19 13:34 Hirose
25     Added __GXSetIndirectMask().
26 
27     3     2002/07/24 9:06 Hirose
28     Resolved version conflicts.
29 
30   $NoKeywords: $
31  *---------------------------------------------------------------------------*/
32 
33 #ifndef __GXBUMP_H__
34 #define __GXBUMP_H__
35 
36 #include <revolution/types.h>
37 
38 
39 //******************************************************************************
40 //
41 //  Graphics Library Indirect Texture (Bump) functions.
42 //
43 //******************************************************************************
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 //------------------------------------------------------------------------------
50 // Bump (indirect texture functions).
51 //------------------------------------------------------------------------------
52 extern void GXSetNumIndStages (u8 nIndStages);
53 extern void GXSetIndTexOrder (GXIndTexStageID ind_stage, GXTexCoordID tex_coord,
54 			      GXTexMapID tex_map);
55 extern void GXSetIndTexCoordScale (GXIndTexStageID ind_state,
56 				   GXIndTexScale scale_s, GXIndTexScale scale_t);
57 extern void GXSetIndTexMtx (GXIndTexMtxID mtx_sel, const f32 offset[2][3], s8 scale_exp);
58 extern void GXSetTevIndirect (GXTevStageID tev_stage, GXIndTexStageID ind_stage,
59 		      GXIndTexFormat format, GXIndTexBiasSel bias_sel,
60 		      GXIndTexMtxID matrix_sel,
61 		      GXIndTexWrap wrap_s, GXIndTexWrap wrap_t,
62 		      GXBool add_prev, GXBool ind_lod, GXIndTexAlphaSel alpha_sel);
63 
64 //------------------------------------------------------------------------------
65 // Convenience functions
66 //------------------------------------------------------------------------------
67 extern void GXSetTevDirect (GXTevStageID tev_stage);
68 extern void GXSetTevIndWarp (GXTevStageID tev_stage, GXIndTexStageID ind_stage,
69 			     GXBool signed_offset, GXBool replace_mode,
70 			     GXIndTexMtxID matrix_sel);
71 extern void GXSetTevIndTile (GXTevStageID tev_stage, GXIndTexStageID ind_stage,
72 			     u16 tilesize_s, u16 tilesize_t,
73 			     u16 tilespacing_s, u16 tilespacing_t,
74 			     GXIndTexFormat format, GXIndTexMtxID matrix_sel,
75 			     GXIndTexBiasSel bias_sel, GXIndTexAlphaSel alpha_sel);
76 extern void GXSetTevIndBumpST (GXTevStageID tev_stage, GXIndTexStageID ind_stage,
77 			       GXIndTexMtxID matrix_sel);
78 extern void GXSetTevIndBumpXYZ (GXTevStageID tev_stage, GXIndTexStageID ind_stage,
79 			       GXIndTexMtxID matrix_sel);
80 extern void GXSetTevIndRepeat (GXTevStageID tev_stage);
81 
82 //------------------------------------------------------------------------------
83 extern void __GXSetIndirectMask ( u32 mask );
84 
85 //------------------------------------------------------------------------------
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif // __GXBUMP_H__
91