Annotation of quakeworld/client/d_local.h, revision 1.1.1.1

1.1       root        1: /*
                      2: Copyright (C) 1996-1997 Id Software, Inc.
                      3: 
                      4: This program is free software; you can redistribute it and/or
                      5: modify it under the terms of the GNU General Public License
                      6: as published by the Free Software Foundation; either version 2
                      7: of the License, or (at your option) any later version.
                      8: 
                      9: This program is distributed in the hope that it will be useful,
                     10: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     11: MERCHANTABILITY or 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
                     16: along with this program; if not, write to the Free Software
                     17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
                     18: 
                     19: */
                     20: // d_local.h:  private rasterization driver defs
                     21: 
                     22: #include "r_shared.h"
                     23: 
                     24: //
                     25: // TODO: fine-tune this; it's based on providing some overage even if there
                     26: // is a 2k-wide scan, with subdivision every 8, for 256 spans of 12 bytes each
                     27: //
                     28: #define SCANBUFFERPAD          0x1000
                     29: 
                     30: #define R_SKY_SMASK    0x007F0000
                     31: #define R_SKY_TMASK    0x007F0000
                     32: 
                     33: #define DS_SPAN_LIST_END       -128
                     34: 
                     35: #define SURFCACHE_SIZE_AT_320X200      600*1024
                     36: 
                     37: typedef struct surfcache_s
                     38: {
                     39:        struct surfcache_s      *next;
                     40:        struct surfcache_s      **owner;                // NULL is an empty chunk of memory
                     41:        int                                     lightadj[MAXLIGHTMAPS]; // checked for strobe flush
                     42:        int                                     dlight;
                     43:        int                                     size;           // including header
                     44:        unsigned                        width;
                     45:        unsigned                        height;         // DEBUG only needed for debug
                     46:        float                           mipscale;
                     47:        struct texture_s        *texture;       // checked for animating textures
                     48:        byte                            data[4];        // width*height elements
                     49: } surfcache_t;
                     50: 
                     51: // !!! if this is changed, it must be changed in asm_draw.h too !!!
                     52: typedef struct sspan_s
                     53: {
                     54:        int                             u, v, count;
                     55: } sspan_t;
                     56: 
                     57: extern cvar_t  d_subdiv16;
                     58: 
                     59: extern float   scale_for_mip;
                     60: 
                     61: extern qboolean                d_roverwrapped;
                     62: extern surfcache_t     *sc_rover;
                     63: extern surfcache_t     *d_initial_rover;
                     64: 
                     65: extern float   d_sdivzstepu, d_tdivzstepu, d_zistepu;
                     66: extern float   d_sdivzstepv, d_tdivzstepv, d_zistepv;
                     67: extern float   d_sdivzorigin, d_tdivzorigin, d_ziorigin;
                     68: 
                     69: fixed16_t      sadjust, tadjust;
                     70: fixed16_t      bbextents, bbextentt;
                     71: 
                     72: 
                     73: void D_DrawSpans8 (espan_t *pspans);
                     74: void D_DrawSpans16 (espan_t *pspans);
                     75: void D_DrawZSpans (espan_t *pspans);
                     76: void Turbulent8 (espan_t *pspan);
                     77: void D_SpriteDrawSpans (sspan_t *pspan);
                     78: 
                     79: void D_DrawSkyScans8 (espan_t *pspan);
                     80: void D_DrawSkyScans16 (espan_t *pspan);
                     81: 
                     82: void R_ShowSubDiv (void);
                     83: void (*prealspandrawer)(void);
                     84: surfcache_t    *D_CacheSurface (msurface_t *surface, int miplevel);
                     85: 
                     86: extern int D_MipLevelForScale (float scale);
                     87: 
                     88: #if id386
                     89: extern void D_PolysetAff8Start (void);
                     90: extern void D_PolysetAff8End (void);
                     91: #endif
                     92: 
                     93: extern short *d_pzbuffer;
                     94: extern unsigned int d_zrowbytes, d_zwidth;
                     95: 
                     96: extern int     *d_pscantable;
                     97: extern int     d_scantable[MAXHEIGHT];
                     98: 
                     99: extern int     d_vrectx, d_vrecty, d_vrectright_particle, d_vrectbottom_particle;
                    100: 
                    101: extern int     d_y_aspect_shift, d_pix_min, d_pix_max, d_pix_shift;
                    102: 
                    103: extern pixel_t *d_viewbuffer;
                    104: 
                    105: extern short   *zspantable[MAXHEIGHT];
                    106: 
                    107: extern int             d_minmip;
                    108: extern float   d_scalemip[3];
                    109: 
                    110: extern void (*d_drawspans) (espan_t *pspan);
                    111: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.