154 lines
3.8 KiB
C
154 lines
3.8 KiB
C
/*
|
|
** 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__ */
|