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