Path: blob/master/libmupen64plus/mupen64plus-video-glide64mk2/src/Glitch64/inc/glideutl.h
2 views
/*1** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY2** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT3** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX4** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE5** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC([email protected]).6** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER7** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A8** FULL TEXT OF THE NON-WARRANTY PROVISIONS.9**10** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO11** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN12** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,13** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR14** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF15** THE UNITED STATES.16**17** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED18**19** $Header: /cvsroot/glide/glide3x/h5/glide3/src/glideutl.h,v 1.3.4.2 2003/06/05 08:23:53 koolsmoky Exp $20** $Log:21** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce22** branching.23** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the24** Napalm Glide open source release. Changes include cleaned up offensive25** comments and new legal headers.26** 1 3dfx 1.0 09/11/99 StarTeam VTS Administrator27** $28**29** 4 7/24/98 1:41p Hohn30**31** 3 1/30/98 4:27p Atai32** gufog* prototype33**34** 1 1/29/98 4:00p Atai35*36* 1 1/16/98 4:29p Atai37* create glide 3 src38*39* 11 1/07/98 11:18a Atai40* remove GrMipMapInfo and GrGC.mm_table in glide341*42* 10 1/06/98 6:47p Atai43* undo grSplash and remove gu routines44*45* 9 1/05/98 6:04p Atai46* move 3df gu related data structure from glide.h to glideutl.h47*48* 8 12/18/97 2:13p Peter49* fogTable cataclysm50*51* 7 12/15/97 5:52p Atai52* disable obsolete glide2 api for glide353*54* 6 8/14/97 5:32p Pgj55* remove dead code per GMT56*57* 5 6/12/97 5:19p Pgj58* Fix bug 57859*60* 4 3/05/97 9:36p Jdt61* Removed guFbWriteRegion added guEncodeRLE1662*63* 3 1/16/97 3:45p Dow64* Embedded fn protos in ifndef FX_GLIDE_NO_FUNC_PROTO65*/6667/* Glide Utility routines */6869#ifndef __GLIDEUTL_H__70#define __GLIDEUTL_H__7172#ifdef __cplusplus73extern "C" {74#endif7576/*77** 3DF texture file structs78*/7980typedef struct81{82FxU32 width, height;83int small_lod, large_lod;84GrAspectRatio_t aspect_ratio;85GrTextureFormat_t format;86} Gu3dfHeader;8788typedef struct89{90FxU8 yRGB[16];91FxI16 iRGB[4][3];92FxI16 qRGB[4][3];93FxU32 packed_data[12];94} GuNccTable;9596typedef struct {97FxU32 data[256];98} GuTexPalette;99100typedef union {101GuNccTable nccTable;102GuTexPalette palette;103} GuTexTable;104105typedef struct106{107Gu3dfHeader header;108GuTexTable table;109void *data;110FxU32 mem_required; /* memory required for mip map in bytes. */111} Gu3dfInfo;112113#ifndef FX_GLIDE_NO_FUNC_PROTO114/*115** Gamma functions116*/117118FX_ENTRY void FX_CALL119guGammaCorrectionRGB( FxFloat red, FxFloat green, FxFloat blue );120121/*122** fog stuff123*/124FX_ENTRY float FX_CALL125guFogTableIndexToW( int i );126127FX_ENTRY void FX_CALL128guFogGenerateExp( GrFog_t *fogtable, float density );129130FX_ENTRY void FX_CALL131guFogGenerateExp2( GrFog_t *fogtable, float density );132133FX_ENTRY void FX_CALL134guFogGenerateLinear(GrFog_t *fogtable,135float nearZ, float farZ );136137/*138** hi-level texture manipulation tools.139*/140FX_ENTRY FxBool FX_CALL141gu3dfGetInfo( const char *filename, Gu3dfInfo *info );142143FX_ENTRY FxBool FX_CALL144gu3dfLoad( const char *filename, Gu3dfInfo *data );145146#endif /* FX_GLIDE_NO_FUNC_PROTO */147148#ifdef __cplusplus149}150#endif151152#endif /* __GLIDEUTL_H__ */153154155