]> icculus.org git repositories - btb/d2x.git/blob - texmap/texmapl.h
fix off by .5 errors in ogl_upixelc and ogl_ulinec (d1x r1.29)
[btb/d2x.git] / texmap / texmapl.h
1 /* $Id: texmapl.h,v 1.4 2003-03-19 19:21:34 btb Exp $ */
2 /*
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
13 */
14
15 /*
16  *
17  * Local include file for texture mapper library -- NOT to be included by users.
18  *
19  * Old Log:
20  * Revision 1.14  1995/02/20  18:23:02  john
21  * Put all the externs in the assembly modules into tmap_inc.asm.
22  * Also, moved all the C versions of the inner loops into a new module,
23  * scanline.c.
24  *
25  * Revision 1.13  1995/02/20  17:09:16  john
26  * Added code so that you can build the tmapper with no assembly!
27  *
28  * Revision 1.12  1994/11/28  13:34:34  mike
29  * optimizations.
30  *
31  * Revision 1.11  1994/11/12  16:41:27  mike
32  * function prototype.
33  *
34  * Revision 1.10  1994/05/24  17:30:00  mike
35  * Prototype fix_recip, asm_tmap_scanline_lin_v.
36  *
37  * Revision 1.9  1994/04/21  15:04:26  mike
38  * Add prototype for texmapl.h
39  *
40  * Revision 1.8  1994/03/31  08:34:53  mike
41  * *** empty log message ***
42  *
43  * Revision 1.7  1994/03/22  20:37:04  mike
44  * *** empty log message ***
45  *
46  * Revision 1.6  1994/03/14  15:43:03  mike
47  * streamline code.
48  *
49  * Revision 1.5  1994/01/31  15:43:18  mike
50  * window_height, asm_tmap_scanline_lin_sky_v
51  *
52  * Revision 1.4  1994/01/21  21:12:27  mike
53  * Prototype asm_tmap_scanline_lin_sky
54  *
55  * Revision 1.3  1994/01/14  14:01:45  mike
56  * Add a bunch of variables.
57  *
58  * Revision 1.2  1993/11/22  10:25:11  mike
59  * *** empty log message ***
60  *
61  * Revision 1.1  1993/09/08  17:29:13  mike
62  * Initial revision
63  *
64  *
65  */
66
67 //      Local include file for texture map library.
68
69 extern  int prevmod(int val,int modulus);
70 extern  int succmod(int val,int modulus);
71 extern  void texture_map_flat(g3ds_tmap *t,int color);
72
73 extern fix compute_dx_dy(g3ds_tmap *t, int top_vertex,int bottom_vertex, fix recip_dy);
74 extern void compute_y_bounds(g3ds_tmap *t, int *vlt, int *vlb, int *vrt, int *vrb,int *bottom_y_ind);
75 extern void asm_tmap_scanline_lin_v(void);
76
77 extern int      fx_y,fx_xleft,fx_xright,per2_flag;
78 extern unsigned char tmap_flat_color;
79 extern unsigned char *pixptr;
80
81 // texture mapper scanline renderers
82 extern  void asm_tmap_scanline_per(void);
83 extern  void asm_pent_tmap_scanline_per(void);
84 extern  void asm_ppro_tmap_scanline_per(void);
85 //extern  void asm_tmap_scanline_per_doubled(void);
86 extern  void asm_tmap_scanline_lin(void);
87 //extern  void asm_tmap_scanline_lin_16(void);
88 //extern  void asm_tmap_scanline_per_16(void);
89 extern  void asm_tmap_scanline_lin_lighted(void);
90 extern  void asm_tmap_scanline_flat(void);
91 extern  void asm_tmap_scanline_shaded(void);
92 //extern  void asm_tmap_scanline_lin_lighted_k(void);
93 //extern  void asm_tmap_scanline_lin_rgb(void);
94 //extern  void asm_tmap_scanline_lin_rgb_16(void);
95 //extern  void asm_tmap_scanline_lin_rgb_16g(void);
96 //extern  void asm_tmap_scanline_lin_ld(void);
97 //extern  void asm_tmap_scanline_lin_sky(void);
98 //extern  void asm_tmap_scanline_lin_sky_v(void);
99
100 extern fix compute_dx_dy_lin(g3ds_tmap *t,int vlt,int vlb, fix recip_dy);
101 extern fix compute_dx_dy_lin(g3ds_tmap *t,int vrt,int vrb, fix recip_dy);
102 extern fix compute_du_dy_lin(g3ds_tmap *t,int vlt,int vlb, fix recip_dy);
103 extern fix compute_du_dy_lin(g3ds_tmap *t,int vrt,int vrb, fix recip_dy);
104 extern fix compute_dv_dy_lin(g3ds_tmap *t,int vlt,int vlb, fix recip_dy);
105 extern fix compute_dv_dy_lin(g3ds_tmap *t,int vrt,int vrb, fix recip_dy);
106
107
108 // Interface variables to assembler code
109 extern  fix     fx_u,fx_v,fx_z,fx_du_dx,fx_dv_dx,fx_dz_dx;
110 extern  fix     fx_dl_dx,fx_l;
111 extern  int     fx_r,fx_g,fx_b,fx_dr_dx,fx_dg_dx,fx_db_dx;
112 extern  unsigned char *pixptr;
113
114 extern  int     bytes_per_row;
115 extern  unsigned char *write_buffer;
116 extern  int     window_left;
117 extern  int     window_right;
118 extern  int     window_top;
119 extern  int     window_bottom;
120 extern  int     window_width;
121 extern  int     window_height;
122 extern  int     scan_doubling_flag;
123 extern  int     linear_if_far_flag;
124 extern  int     dither_intensity_lighting;
125 extern  int     Interlacing_on;
126
127 extern ubyte * tmap_flat_cthru_table;
128 extern ubyte tmap_flat_color;
129 extern ubyte tmap_flat_shade_value;
130
131
132 extern fix fix_recip[];
133
134 extern int prevmod(int val,int modulus);
135