Glide Plugin GLES2 port from mupen64plus-ae, but with special FrameSkip code
[mupen64plus-pandora.git] / source / gles2glide64 / src / Glitch64 / inc / glideutl.h
diff --git a/source/gles2glide64/src/Glitch64/inc/glideutl.h b/source/gles2glide64/src/Glitch64/inc/glideutl.h
new file mode 100644 (file)
index 0000000..16c6e32
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+** 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__ */