1 /*---------------------------------------------------------------------------*
2   Project:  Dolphin GX library
3   File:     GXPixel.h
4 
5   Copyright 1998- 2003 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: GXPixel.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     6     2003/09/26 16:56 Hirose
25     Added GXSetFogColor().
26 
27     5     2002/07/24 9:07 Hirose
28     Resolved version conflicts.
29 
30     5     2002/04/09 15:15 Hirose
31     const type specifier support. (worked by hiratsu@IRD)
32 
33     4     2000/04/26 4:09p Alligator
34     Added parameter to GXSetFieldMode
35 
36     3     2000/04/19 2:38p Carl
37     Added GXSetFieldMode (ArtX update).
38 
39     2     1999/12/10 4:53p Carl
40     Fixed Z compare stuff.
41 
42     10    1999/10/13 5:19p Alligator
43     Changed GXSetMotionComp to GXSetFieldMask
44 
45     9     1999/10/04 2:42p Yasu
46     Added GXInitFogAdjTable
47 
48     8     1999/09/30 10:40p Yasu
49     Renamed some GX functions and enums
50 
51     7     1999/09/29 6:29p Alligator
52     Added width parameter to GXSetFogRangeAdj
53 
54     6     1999/09/02 10:57a Ryan
55 
56     5     1999/09/01 5:45p Ryan
57 
58     4     1999/08/27 2:25p Yasu
59     Changed a parameter of GXSetBlendMode, GXSetZMode.
60     Appended GXSetZUpdate, GXSetAlphaUpdate and GXSetDither.
61 
62     3     1999/08/26 2:37p Yasu
63     Deletef=d a parameter of density in GXSetFog().
64     Changed a function name GXSetColorMode -> GXSetBlendMode
65 
66     2     1999/07/28 4:07p Alligator
67     Updated header files and emulator for hw changes
68 
69     1     1999/07/14 4:20p Alligator
70     Split gx.h into individual header files for each major section of API
71   $NoKeywords: $
72  *---------------------------------------------------------------------------*/
73 
74 #ifndef __GXPIXEL_H__
75 #define __GXPIXEL_H__
76 
77 #ifdef __cplusplus
78 extern "C" {
79 #endif
80 
81 /*---------------------------------------------------------------------------*/
82 #include <revolution/types.h>
83 #include <revolution/gx/GXEnum.h>
84 #include <revolution/gx/GXStruct.h>
85 
86 /*---------------------------------------------------------------------------*/
87 void GXSetFog(	GXFogType	type,
88 		f32		startz,
89 		f32		endz,
90 		f32		nearz,
91 		f32		farz,
92 		GXColor		color );
93 
94 void GXSetFogColor( GXColor color );
95 
96 void GXInitFogAdjTable( GXFogAdjTable* table, u16 width, const f32 projmtx[4][4] );
97 
98 void GXSetFogRangeAdj( GXBool enable, u16 center, const GXFogAdjTable* table );
99 
100 void GXSetBlendMode (	GXBlendMode	type,
101 			GXBlendFactor	src_factor,
102 			GXBlendFactor	dst_factor,
103 			GXLogicOp	op );
104 
105 void GXSetColorUpdate( GXBool update_enable );
106 void GXSetAlphaUpdate( GXBool update_enable );
107 void GXSetZMode(	GXBool		compare_enable,
108 			GXCompare	func,
109 			GXBool		update_enable );
110 
111 void GXSetZCompLoc( GXBool before_tex );
112 void GXSetPixelFmt ( GXPixelFmt pix_fmt, GXZFmt16 z_fmt );
113 void GXSetDither( GXBool dither );
114 void GXSetDstAlpha( GXBool enable, u8 alpha );
115 void GXSetFieldMask( GXBool odd_mask, GXBool even_mask );
116 void GXSetFieldMode( GXBool field_mode, GXBool half_aspect_ratio );
117 
118 /*---------------------------------------------------------------------------*/
119 #ifdef __cplusplus
120 }
121 #endif // __GXPIXEL_H__
122 
123 #endif
124