1 /*---------------------------------------------------------------------------* 2 Project: Dolphin GX library 3 File: GXTev.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: GXTev.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 transitioned from the Dolphin source tree 22 23 24 4 02/07/24 09:07:00 Hirose 25 Resolved version conflicts. 26 27 3 10/18/00 4:05p Carl 28 Latest round of HW2 modifications and minor updates. 29 30 2 10/03/00 7:55p Hirose 31 Update for HW2(Rev.B) GX API extensions 32 33 9 10/29/99 3:33p Hirose 34 changed GXSetTevStages(GXTevStageID) to GXSetNumTevStages(u8) 35 36 8 10/26/99 8:04p Alligator 37 added s10-bit color 38 39 7 10/13/99 5:20p Alligator 40 remove GXSetTevClrSwap 41 42 6 9/30/99 10:40p Yasu 43 Renamed some GX functions and enums 44 45 5 9/29/99 10:10a Alligator 46 changed TEV api, separate input selection from ops 47 48 4 9/01/99 3:33p Ryan 49 50 3 8/17/99 1:02p Alligator 51 updated commented functions to match current api 52 53 2 7/28/99 4:07p Alligator 54 update header files and emulator for hw changes 55 56 1 7/14/99 4:20p Alligator 57 split gx.h into individual header files for each major section of API 58 $NoKeywords: $ 59 *---------------------------------------------------------------------------*/ 60 61 #ifndef __GXTEV_H__ 62 #define __GXTEV_H__ 63 64 #ifdef __cplusplus 65 extern "C" { 66 #endif 67 68 /*---------------------------------------------------------------------------*/ 69 #include <revolution/types.h> 70 #include <revolution/gx/GXEnum.h> 71 #include <revolution/gx/GXStruct.h> 72 73 /*---------------------------------------------------------------------------*/ 74 void GXSetTevOp(GXTevStageID id, GXTevMode mode); 75 76 void GXSetTevColorIn( 77 GXTevStageID stage, 78 GXTevColorArg a, 79 GXTevColorArg b, 80 GXTevColorArg c, 81 GXTevColorArg d ); 82 83 void GXSetTevAlphaIn( 84 GXTevStageID stage, 85 GXTevAlphaArg a, 86 GXTevAlphaArg b, 87 GXTevAlphaArg c, 88 GXTevAlphaArg d ); 89 90 void GXSetTevColorOp( 91 GXTevStageID stage, 92 GXTevOp op, 93 GXTevBias bias, 94 GXTevScale scale, 95 GXBool clamp, 96 GXTevRegID out_reg ); 97 98 void GXSetTevAlphaOp( 99 GXTevStageID stage, 100 GXTevOp op, 101 GXTevBias bias, 102 GXTevScale scale, 103 GXBool clamp, 104 GXTevRegID out_reg ); 105 106 void GXSetTevColor( GXTevRegID id, GXColor color ); 107 void GXSetTevColorS10( GXTevRegID id, GXColorS10 color ); 108 109 // Feature available in GX chip revision 1 only 110 // Revision 2 version is defined, but only prints error msg 111 void GXSetTevClampMode ( GXTevStageID stage, GXTevClampMode mode ); 112 113 void GXSetAlphaCompare( 114 GXCompare comp0, 115 u8 ref0, 116 GXAlphaOp op, 117 GXCompare comp1, 118 u8 ref1 ); 119 120 void GXSetTevOrder( 121 GXTevStageID stage, 122 GXTexCoordID coord, 123 GXTexMapID map, 124 GXChannelID color ); 125 126 void GXSetZTexture ( GXZTexOp op, GXTexFmt fmt, u32 bias ); 127 void GXSetNumTevStages( u8 nStages ); 128 129 #if ( GX_REV != 1 ) 130 // Features available in GX chip revision 2 or later only 131 void GXSetTevKColor( GXTevKColorID id, GXColor color ); 132 void GXSetTevKColorSel( GXTevStageID stage, GXTevKColorSel sel ); 133 void GXSetTevKAlphaSel( GXTevStageID stage, GXTevKAlphaSel sel ); 134 135 void GXSetTevSwapMode( 136 GXTevStageID stage, 137 GXTevSwapSel ras_sel, 138 GXTevSwapSel tex_sel ); 139 140 void GXSetTevSwapModeTable( 141 GXTevSwapSel table, 142 GXTevColorChan red, 143 GXTevColorChan green, 144 GXTevColorChan blue, 145 GXTevColorChan alpha ); 146 147 #endif // ( GX_REV != 1 ) 148 149 /*---------------------------------------------------------------------------*/ 150 #ifdef __cplusplus 151 } 152 #endif 153 154 #endif // __GXTEV_H__ 155