]> icculus.org git repositories - btb/d2x.git/blob - main/old/3dfx_des.h
This commit was manufactured by cvs2svn to create branch
[btb/d2x.git] / main / old / 3dfx_des.h
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13
14 #ifndef __3DFX_DES_H__
15 #define __3DFX_DES_H__
16
17 #ifdef _3DFX
18
19 #include "gr.h"
20 #include "3d.h"
21 #include "texmap.h"
22
23 #define GLIDE_HARDWARE
24 #include <glide.h>
25 #include <stdio.h>
26
27 #define _3DFX_MAX_HANDLES 98 * 1
28
29 extern int _3dfx_tex_combine, _3dfx_tex_combine_bottom, _3dfx_tex_combine_top;
30 extern int _3dfx_triangles_rendered_pre_clip;
31 extern int _3dfx_triangles_rendered_post_clip;
32 extern int _3dfx_current_bitmap_index;
33 extern int _3dfx_skip_ddraw, _3dfx_no_texture, _3dfx_allow_transparency;
34
35 #define fix_to_float   ( 1.0F / 65536.0F )
36 #define fix_to_rgb     ( ( 255.0 / 32.0F ) / 65536.0F )
37 #define fix_to_st      ( ( 255.0 / 63.0 ) / ( 65536.0F ) )
38
39 #define _3DFX_TF_DOWNLOADED  0x00000001
40 #define _3DFX_TF_IN_MEMORY   0x10000000
41 #define _3DFX_TF_SUPERX      0x00000010
42 #define _3DFX_TF_TRANSPARENT 0x00000020
43
44 typedef struct
45 {
46    int   flags;
47    int   handle;
48    int   mem_required;
49    void *data;
50 } _3dfxTextureInfo;
51
52 extern _3dfxTextureInfo _3dfx_texture_info[];
53
54 extern int _3dfx_handle_to_index[_3DFX_MAX_HANDLES];
55 extern int _3dfx_current_handle;
56
57 extern int _3dfx_bytes_downloaded_this_frame;
58 extern int _3dfx_download_requests_made;
59 extern int _3dfx_download_requests_granted;
60 extern int _3dfx_drawing_polygon_model;
61 extern int _3dfx_should_sync;
62 extern int _3dfx_available;
63
64 extern int _3dfx_rendering_poly_obj;
65
66 extern int   _3dfx_tex_combine_orientation;
67 extern int   _3dfx_tex_combine_superx;
68 extern int   _3dfx_tex_combine_top_flags, _3dfx_tex_combine_bottom_flags;
69 extern int   _3dfx_should_sync;
70 extern float _3dfx_stencil;
71
72 void _3dfx_DownloadTexture( int index );
73 void _3dfx_DebugOut( const char *fmt, ... );
74 void _3dfx_decompose_tmap_and_draw( int nv, g3s_point **pointlist, void *uvl_copy, grs_bitmap *bm );
75 void _3dfx_LoadTexture( int index, const char *_name );
76 void _3dfx_BufferSwap( void );
77 int  _3dfx_Init( void );
78 void _3dfx_DownloadAndUseTexture( unsigned long index );
79 void _3dfx_DrawFlatShadedPoly( const g3ds_tmap *tmap, FxU32 argb );
80 void _3dfx_BlitScale( grs_bitmap *source_bmp, grs_bitmap *dest_bmp,
81                       int x0, int y0, int x1, int y1,
82                       fix u0, fix v0,  fix u1, fix v1, int orient );
83 void _3dfx_Blit( int x, int y, grs_bitmap *bp );
84 void _3dfx_InitFogForPaletteTricks( void );
85
86 unsigned long _3dfx_PaletteToARGB( int pindex );
87
88 #define SIZEOF_64x64_16BIT_TEXTURE 10928
89
90 #endif
91
92 #endif