/* ** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY ** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT ** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX ** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE ** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). ** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER ** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A ** FULL TEXT OF THE NON-WARRANTY PROVISIONS. ** ** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO ** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN ** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, ** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR ** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF ** THE UNITED STATES. ** ** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED ** ** $Header: /cvsroot/glide/glide3x/h5/glide3/src/glideutl.h,v 1.3.4.2 2003/06/05 08:23:53 koolsmoky Exp $ ** $Log: ** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce ** branching. ** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the ** Napalm Glide open source release. Changes include cleaned up offensive ** comments and new legal headers. ** 1 3dfx 1.0 09/11/99 StarTeam VTS Administrator ** $ ** ** 4 7/24/98 1:41p Hohn ** ** 3 1/30/98 4:27p Atai ** gufog* prototype ** ** 1 1/29/98 4:00p Atai * * 1 1/16/98 4:29p Atai * create glide 3 src * * 11 1/07/98 11:18a Atai * remove GrMipMapInfo and GrGC.mm_table in glide3 * * 10 1/06/98 6:47p Atai * undo grSplash and remove gu routines * * 9 1/05/98 6:04p Atai * move 3df gu related data structure from glide.h to glideutl.h * * 8 12/18/97 2:13p Peter * fogTable cataclysm * * 7 12/15/97 5:52p Atai * disable obsolete glide2 api for glide3 * * 6 8/14/97 5:32p Pgj * remove dead code per GMT * * 5 6/12/97 5:19p Pgj * Fix bug 578 * * 4 3/05/97 9:36p Jdt * Removed guFbWriteRegion added guEncodeRLE16 * * 3 1/16/97 3:45p Dow * Embedded fn protos in ifndef FX_GLIDE_NO_FUNC_PROTO */ /* Glide Utility routines */ #ifndef __GLIDEUTL_H__ #define __GLIDEUTL_H__ #ifdef __cplusplus extern "C" { #endif /* ** 3DF texture file structs */ typedef struct { FxU32 width, height; int small_lod, large_lod; GrAspectRatio_t aspect_ratio; GrTextureFormat_t format; } Gu3dfHeader; typedef struct { FxU8 yRGB[16]; FxI16 iRGB[4][3]; FxI16 qRGB[4][3]; FxU32 packed_data[12]; } GuNccTable; typedef struct { FxU32 data[256]; } GuTexPalette; typedef union { GuNccTable nccTable; GuTexPalette palette; } GuTexTable; typedef struct { Gu3dfHeader header; GuTexTable table; void *data; FxU32 mem_required; /* memory required for mip map in bytes. */ } Gu3dfInfo; #ifndef FX_GLIDE_NO_FUNC_PROTO /* ** Gamma functions */ FX_ENTRY void FX_CALL guGammaCorrectionRGB( FxFloat red, FxFloat green, FxFloat blue ); /* ** fog stuff */ FX_ENTRY float FX_CALL guFogTableIndexToW( int i ); FX_ENTRY void FX_CALL guFogGenerateExp( GrFog_t *fogtable, float density ); FX_ENTRY void FX_CALL guFogGenerateExp2( GrFog_t *fogtable, float density ); FX_ENTRY void FX_CALL guFogGenerateLinear(GrFog_t *fogtable, float nearZ, float farZ ); /* ** hi-level texture manipulation tools. */ FX_ENTRY FxBool FX_CALL gu3dfGetInfo( const char *filename, Gu3dfInfo *info ); FX_ENTRY FxBool FX_CALL gu3dfLoad( const char *filename, Gu3dfInfo *data ); #endif /* FX_GLIDE_NO_FUNC_PROTO */ #ifdef __cplusplus } #endif #endif /* __GLIDEUTL_H__ */