1 /* 2 * Copyright (C) 1997-2001 Id Software, Inc. 3 * 4 * This program is free software; you can redistribute it and/or modify it under 5 * the terms of the GNU General Public License as published by the Free 6 * Software Foundation; either version 2 of the License, or (at your option) 7 * any later version. 8 * 9 * This program is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. 12 * 13 * See the GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along with 16 * this program; if not, write to the Free Software Foundation, Inc., 59 17 * Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 * 19 */ 20 #ifndef __ASM_I386__ 21 #define __ASM_I386__ 22 23 #ifdef ELF 24 #define C(label) label 25 #else 26 #define C(label) _##label 27 #endif 28 29 30 /* #define GLQUAKE 1 */ 31 32 #if !defined(WINDED) 33 34 #if defined(_M_IX86) 35 #define __i386__ 1 36 #endif 37 38 #endif 39 40 #ifdef __i386__ 41 #define id386 1 42 #else 43 #define id386 0 44 #endif 45 46 /* !!! must be kept the same as in d_iface.h !!! */ 47 #define TRANSPARENT_COLOR 255 48 49 #ifndef GLQUAKE 50 .extern C (d_zistepu) 51 .extern C (d_pzbuffer) 52 .extern C (d_zistepv) 53 .extern C (d_zrowbytes) 54 .extern C (d_ziorigin) 55 .extern C (r_turb_s) 56 .extern C (r_turb_t) 57 .extern C (r_turb_pdest) 58 .extern C (r_turb_spancount) 59 .extern C (r_turb_turb) 60 .extern C (r_turb_pbase) 61 .extern C (r_turb_sstep) 62 .extern C (r_turb_tstep) 63 .extern C (r_bmodelactive) 64 .extern C (d_sdivzstepu) 65 .extern C (d_tdivzstepu) 66 .extern C (d_sdivzstepv) 67 .extern C (d_tdivzstepv) 68 .extern C (d_sdivzorigin) 69 .extern C (d_tdivzorigin) 70 .extern C (sadjust) 71 .extern C (tadjust) 72 .extern C (bbextents) 73 .extern C (bbextentt) 74 .extern C (cacheblock) 75 .extern C (d_viewbuffer) 76 .extern C (cachewidth) 77 .extern C (d_pzbuffer) 78 .extern C (d_zrowbytes) 79 .extern C (d_zwidth) 80 .extern C (d_scantable) 81 .extern C (r_lightptr) 82 .extern C (r_numvblocks) 83 .extern C (prowdestbase) 84 .extern C (pbasesource) 85 .extern C (r_lightwidth) 86 .extern C (lightright) 87 .extern C (lightrightstep) 88 .extern C (lightdeltastep) 89 .extern C (lightdelta) 90 .extern C (lightright) 91 .extern C (lightdelta) 92 .extern C (sourcetstep) 93 .extern C (surfrowbytes) 94 .extern C (lightrightstep) 95 .extern C (lightdeltastep) 96 .extern C (r_sourcemax) 97 .extern C (r_stepback) 98 .extern C (colormap) 99 .extern C (blocksize) 100 .extern C (sourcesstep) 101 .extern C (lightleft) 102 .extern C (blockdivshift) 103 .extern C (blockdivmask) 104 .extern C (lightleftstep) 105 .extern C (r_origin) 106 .extern C (r_ppn) 107 .extern C (r_pup) 108 .extern C (r_pright) 109 .extern C (ycenter) 110 .extern C (xcenter) 111 .extern C (d_vrectbottom_particle) 112 .extern C (d_vrectright_particle) 113 .extern C (d_vrecty) 114 .extern C (d_vrectx) 115 .extern C (d_pix_shift) 116 .extern C (d_pix_min) 117 .extern C (d_pix_max) 118 .extern C (d_y_aspect_shift) 119 .extern C (screenwidth) 120 .extern C (r_leftclipped) 121 .extern C (r_leftenter) 122 .extern C (r_rightclipped) 123 .extern C (r_rightenter) 124 .extern C (modelorg) 125 .extern C (xscale) 126 .extern C (r_refdef) 127 .extern C (yscale) 128 .extern C (r_leftexit) 129 .extern C (r_rightexit) 130 .extern C (r_lastvertvalid) 131 .extern C (cacheoffset) 132 .extern C (newedges) 133 .extern C (removeedges) 134 .extern C (r_pedge) 135 .extern C (r_framecount) 136 .extern C (r_u1) 137 .extern C (r_emitted) 138 .extern C (edge_p) 139 .extern C (surface_p) 140 .extern C (surfaces) 141 .extern C (r_lzi1) 142 .extern C (r_v1) 143 .extern C (r_ceilv1) 144 .extern C (r_nearzi) 145 .extern C (r_nearzionly) 146 .extern C (edge_aftertail) 147 .extern C (edge_tail) 148 .extern C (current_iv) 149 .extern C (edge_head_u_shift20) 150 .extern C (span_p) 151 .extern C (edge_head) 152 .extern C (fv) 153 .extern C (edge_tail_u_shift20) 154 .extern C (r_apverts) 155 .extern C (r_anumverts) 156 .extern C (aliastransform) 157 .extern C (r_avertexnormals) 158 .extern C (r_plightvec) 159 .extern C (r_ambientlight) 160 .extern C (r_shadelight) 161 .extern C (aliasxcenter) 162 .extern C (aliasycenter) 163 .extern C (a_sstepxfrac) 164 .extern C (r_affinetridesc) 165 .extern C (acolormap) 166 .extern C (d_pcolormap) 167 .extern C (r_affinetridesc) 168 .extern C (d_sfrac) 169 .extern C (d_ptex) 170 .extern C (d_pedgespanpackage) 171 .extern C (d_tfrac) 172 .extern C (d_light) 173 .extern C (d_zi) 174 .extern C (d_pdest) 175 .extern C (d_pz) 176 .extern C (d_aspancount) 177 .extern C (erroradjustup) 178 .extern C (errorterm) 179 .extern C (d_xdenom) 180 .extern C (r_p0) 181 .extern C (r_p1) 182 .extern C (r_p2) 183 .extern C (a_tstepxfrac) 184 .extern C (r_sstepx) 185 .extern C (r_tstepx) 186 .extern C (a_ststepxwhole) 187 .extern C (zspantable) 188 .extern C (skintable) 189 .extern C (r_zistepx) 190 .extern C (erroradjustdown) 191 .extern C (d_countextrastep) 192 .extern C (ubasestep) 193 .extern C (a_ststepxwhole) 194 .extern C (a_tstepxfrac) 195 .extern C (r_lstepx) 196 .extern C (a_spans) 197 .extern C (erroradjustdown) 198 .extern C (d_pdestextrastep) 199 .extern C (d_pzextrastep) 200 .extern C (d_sfracextrastep) 201 .extern C (d_ptexextrastep) 202 .extern C (d_countextrastep) 203 .extern C (d_tfracextrastep) 204 .extern C (d_lightextrastep) 205 .extern C (d_ziextrastep) 206 .extern C (d_pdestbasestep) 207 .extern C (d_pzbasestep) 208 .extern C (d_sfracbasestep) 209 .extern C (d_ptexbasestep) 210 .extern C (ubasestep) 211 .extern C (d_tfracbasestep) 212 .extern C (d_lightbasestep) 213 .extern C (d_zibasestep) 214 .extern C (zspantable) 215 .extern C (r_lstepy) 216 .extern C (r_sstepy) 217 .extern C (r_tstepy) 218 .extern C (r_zistepy) 219 .extern C (D_PolysetSetEdgeTable) 220 .extern C (D_RasterizeAliasPolySmooth) 221 .extern float_point5 222 .extern Float2ToThe31nd 223 .extern izistep 224 .extern izi 225 .extern FloatMinus2ToThe31nd 226 .extern float_1 227 .extern float_particle_z_clip 228 .extern float_minus_1 229 .extern float_0 230 .extern fp_16 231 .extern fp_64k 232 .extern fp_1m 233 .extern fp_1m_minus_1 234 .extern fp_8 235 .extern entryvec_table 236 .extern advancetable 237 .extern sstep 238 .extern tstep 239 .extern pspantemp 240 .extern counttemp 241 .extern jumptemp 242 .extern reciprocal_table 243 .extern DP_Count 244 .extern DP_u 245 .extern DP_v 246 .extern DP_32768 247 .extern DP_Color 248 .extern DP_Pix 249 .extern DP_EntryTable 250 .extern pbase 251 .extern s 252 .extern t 253 .extern sfracf 254 .extern tfracf 255 .extern snext 256 .extern tnext 257 .extern spancountminus1 258 .extern zi16stepu 259 .extern sdivz16stepu 260 .extern tdivz16stepu 261 .extern zi8stepu 262 .extern sdivz8stepu 263 .extern tdivz8stepu 264 .extern reciprocal_table_16 265 .extern entryvec_table_16 266 .extern ceil_cw 267 .extern single_cw 268 .extern fp_64kx64k 269 .extern pz 270 .extern spr8entryvec_table 271 #endif 272 273 .extern C (snd_scaletable) 274 .extern C (paintbuffer) 275 .extern C (snd_linear_count) 276 .extern C (snd_p) 277 .extern C (snd_vol) 278 .extern C (snd_out) 279 .extern C (vright) 280 .extern C (vup) 281 .extern C (vpn) 282 .extern C (BOPS_Error) 283 // 284 /* !!! note that this file must match the corresponding C structures at all */ 285 /* times !!! */ 286 // 287 288 /* plane_t structure */ 289 /* !!! if this is changed, it must be changed in model.h too !!! */ 290 291 /* 292 * !!! if the size of this is changed, the array lookup in 293 * SV_HullPointContents 294 */ 295 /* must be changed too !!! */ 296 #define pl_normal 0 297 #define pl_dist 12 298 #define pl_type 16 299 #define pl_signbits 17 300 #define pl_pad 18 301 #define pl_size 20 302 303 /* hull_t structure */ 304 /* !!! if this is changed, it must be changed in model.h too !!! */ 305 #define hu_clipnodes 0 306 #define hu_planes 4 307 #define hu_firstclipnode 8 308 #define hu_lastclipnode 12 309 #define hu_clip_mins 16 310 #define hu_clip_maxs 28 311 #define hu_size 40 312 313 /* dnode_t structure */ 314 /* !!! if this is changed, it must be changed in bspfile.h too !!! */ 315 #define nd_planenum 0 316 #define nd_children 4 317 #define nd_mins 8 318 #define nd_maxs 20 319 #define nd_firstface 32 320 #define nd_numfaces 36 321 #define nd_size 40 322 323 /* sfxcache_t structure */ 324 /* !!! if this is changed, it much be changed in sound.h too !!! */ 325 #define sfxc_length 0 326 #define sfxc_loopstart 4 327 #define sfxc_speed 8 328 #define sfxc_width 12 329 #define sfxc_stereo 16 330 #define sfxc_data 20 331 332 /* channel_t structure */ 333 /* !!! if this is changed, it much be changed in sound.h too !!! */ 334 #define ch_sfx 0 335 #define ch_leftvol 4 336 #define ch_rightvol 8 337 #define ch_end 12 338 #define ch_pos 16 339 #define ch_looping 20 340 #define ch_entnum 24 341 #define ch_entchannel 28 342 #define ch_origin 32 343 #define ch_dist_mult 44 344 #define ch_master_vol 48 345 #define ch_size 52 346 347 /* portable_samplepair_t structure */ 348 /* !!! if this is changed, it much be changed in sound.h too !!! */ 349 #define psp_left 0 350 #define psp_right 4 351 #define psp_size 8 352 353 354 // 355 /* !!! note that this file must match the corresponding C structures at all */ 356 /* times !!! */ 357 // 358 359 /* !!! if this is changed, it must be changed in r_local.h too !!! */ 360 #define NEAR_CLIP 0.01 361 362 /* !!! if this is changed, it must be changed in r_local.h too !!! */ 363 #define CYCLE 128 364 365 /* espan_t structure */ 366 /* !!! if this is changed, it must be changed in r_shared.h too !!! */ 367 #define espan_t_u 0 368 #define espan_t_v 4 369 #define espan_t_count 8 370 #define espan_t_pnext 12 371 #define espan_t_size 16 372 373 /* sspan_t structure */ 374 /* !!! if this is changed, it must be changed in d_local.h too !!! */ 375 #define sspan_t_u 0 376 #define sspan_t_v 4 377 #define sspan_t_count 8 378 #define sspan_t_size 12 379 380 /* spanpackage_t structure */ 381 /* !!! if this is changed, it must be changed in d_polyset.c too !!! */ 382 #define spanpackage_t_pdest 0 383 #define spanpackage_t_pz 4 384 #define spanpackage_t_count 8 385 #define spanpackage_t_ptex 12 386 #define spanpackage_t_sfrac 16 387 #define spanpackage_t_tfrac 20 388 #define spanpackage_t_light 24 389 #define spanpackage_t_zi 28 390 #define spanpackage_t_size 32 391 392 /* edge_t structure */ 393 /* !!! if this is changed, it must be changed in r_shared.h too !!! */ 394 #define et_u 0 395 #define et_u_step 4 396 #define et_prev 8 397 #define et_next 12 398 #define et_surfs 16 399 #define et_nextremove 20 400 #define et_nearzi 24 401 #define et_owner 28 402 #define et_size 32 403 404 /* surf_t structure */ 405 /* !!! if this is changed, it must be changed in r_shared.h too !!! */ 406 #define SURF_T_SHIFT 6 407 #define st_next 0 408 #define st_prev 4 409 #define st_spans 8 410 #define st_key 12 411 #define st_last_u 16 412 #define st_spanstate 20 413 #define st_flags 24 414 #define st_data 28 415 #define st_entity 32 416 #define st_nearzi 36 417 #define st_insubmodel 40 418 #define st_d_ziorigin 44 419 #define st_d_zistepu 48 420 #define st_d_zistepv 52 421 #define st_pad 56 422 #define st_size 64 423 424 /* clipplane_t structure */ 425 /* !!! if this is changed, it must be changed in r_local.h too !!! */ 426 #define cp_normal 0 427 #define cp_dist 12 428 #define cp_next 16 429 #define cp_leftedge 20 430 #define cp_rightedge 21 431 #define cp_reserved 22 432 #define cp_size 24 433 434 /* medge_t structure */ 435 /* !!! if this is changed, it must be changed in model.h too !!! */ 436 #define me_v 0 437 #define me_cachededgeoffset 4 438 #define me_size 8 439 440 /* mvertex_t structure */ 441 /* !!! if this is changed, it must be changed in model.h too !!! */ 442 #define mv_position 0 443 #define mv_size 12 444 445 /* refdef_t structure */ 446 /* !!! if this is changed, it must be changed in render.h too !!! */ 447 #define rd_vrect 0 448 #define rd_aliasvrect 20 449 #define rd_vrectright 40 450 #define rd_vrectbottom 44 451 #define rd_aliasvrectright 48 452 #define rd_aliasvrectbottom 52 453 #define rd_vrectrightedge 56 454 #define rd_fvrectx 60 455 #define rd_fvrecty 64 456 #define rd_fvrectx_adj 68 457 #define rd_fvrecty_adj 72 458 #define rd_vrect_x_adj_shift20 76 459 #define rd_vrectright_adj_shift20 80 460 #define rd_fvrectright_adj 84 461 #define rd_fvrectbottom_adj 88 462 #define rd_fvrectright 92 463 #define rd_fvrectbottom 96 464 #define rd_horizontalFieldOfView 100 465 #define rd_xOrigin 104 466 #define rd_yOrigin 108 467 #define rd_vieworg 112 468 #define rd_viewangles 124 469 #define rd_ambientlight 136 470 #define rd_size 140 471 472 /* mtriangle_t structure */ 473 /* !!! if this is changed, it must be changed in model.h too !!! */ 474 #define mtri_facesfront 0 475 #define mtri_vertindex 4 476 #define mtri_size 16 /* !!! if this changes, array indexing in !!! */ 477 /* !!! d_polysa.s must be changed to match !!! */ 478 #define mtri_shift 4 479 480 #endif 481