Annotation of quake1/r_local.h, revision 1.1.1.1

1.1       root        1: // r_local.h -- private refresh defs
                      2: 
                      3: #include "r_shared.h"
                      4: 
                      5: #define ALIAS_BASE_SIZE_RATIO          (1.0 / 11.0)
                      6:                                        // normalizing factor so player model works out to about
                      7:                                        //  1 pixel per triangle
                      8: 
                      9: #define BMODEL_FULLY_CLIPPED   0x10 // value returned by R_BmodelCheckBBox ()
                     10:                                                                         //  if bbox is trivially rejected
                     11: 
                     12: //===========================================================================
                     13: // viewmodel lighting
                     14: 
                     15: typedef struct {
                     16:        int                     ambientlight;
                     17:        int                     shadelight;
                     18:        float           *plightvec;
                     19: } alight_t;
                     20: 
                     21: //===========================================================================
                     22: // clipped bmodel edges
                     23: 
                     24: typedef struct bedge_s
                     25: {
                     26:        mvertex_t               *v[2];
                     27:        struct bedge_s  *pnext;
                     28: } bedge_t;
                     29: 
                     30: typedef struct {
                     31:        float   fv[3];          // viewspace x, y
                     32: } auxvert_t;
                     33: 
                     34: //===========================================================================
                     35: 
                     36: extern cvar_t  r_draworder;
                     37: extern cvar_t  r_speeds;
                     38: extern cvar_t  r_timegraph;
                     39: extern cvar_t  r_graphheight;
                     40: extern cvar_t  r_clearcolor;
                     41: extern cvar_t  r_waterwarp;
                     42: extern cvar_t  r_fullbright;
                     43: extern cvar_t  r_drawentities;
                     44: extern cvar_t  r_aliasstats;
                     45: extern cvar_t  r_dspeeds;
                     46: extern cvar_t  r_drawflat;
                     47: extern cvar_t  r_ambient;
                     48: extern cvar_t  r_reportsurfout;
                     49: extern cvar_t  r_maxsurfs;
                     50: extern cvar_t  r_numsurfs;
                     51: extern cvar_t  r_reportedgeout;
                     52: extern cvar_t  r_maxedges;
                     53: extern cvar_t  r_numedges;
                     54: 
                     55: #define XCENTERING     (1.0 / 2.0)
                     56: #define YCENTERING     (1.0 / 2.0)
                     57: 
                     58: #define CLIP_EPSILON           0.001
                     59: 
                     60: #define BACKFACE_EPSILON       0.01
                     61: 
                     62: //===========================================================================
                     63: 
                     64: #define        DIST_NOT_SET    98765
                     65: 
                     66: // !!! if this is changed, it must be changed in asm_draw.h too !!!
                     67: typedef struct clipplane_s
                     68: {
                     69:        vec3_t          normal;
                     70:        float           dist;
                     71:        struct          clipplane_s     *next;
                     72:        byte            leftedge;
                     73:        byte            rightedge;
                     74:        byte            reserved[2];
                     75: } clipplane_t;
                     76: 
                     77: extern clipplane_t     view_clipplanes[4];
                     78: 
                     79: //=============================================================================
                     80: 
                     81: void R_RenderWorld (void);
                     82: 
                     83: //=============================================================================
                     84: 
                     85: extern mplane_t        screenedge[4];
                     86: 
                     87: extern vec3_t  r_origin;
                     88: 
                     89: extern vec3_t  r_entorigin;
                     90: 
                     91: extern float   screenAspect;
                     92: extern float   verticalFieldOfView;
                     93: extern float   xOrigin, yOrigin;
                     94: 
                     95: extern int             r_visframecount;
                     96: 
                     97: //=============================================================================
                     98: 
                     99: extern int     vstartscan;
                    100: 
                    101: 
                    102: void R_ClearPolyList (void);
                    103: void R_DrawPolyList (void);
                    104: 
                    105: //
                    106: // current entity info
                    107: //
                    108: extern qboolean                insubmodel;
                    109: extern vec3_t                  r_worldmodelorg;
                    110: 
                    111: 
                    112: void R_DrawSprite (void);
                    113: void R_RenderFace (msurface_t *fa, int clipflags);
                    114: void R_RenderPoly (msurface_t *fa, int clipflags);
                    115: void R_RenderBmodelFace (bedge_t *pedges, msurface_t *psurf);
                    116: void R_TransformPlane (mplane_t *p, float *normal, float *dist);
                    117: void R_TransformFrustum (void);
                    118: void R_SetSkyFrame (void);
                    119: void R_DrawSurfaceBlock16 (void);
                    120: void R_DrawSurfaceBlock8 (void);
                    121: texture_t *R_TextureAnimation (texture_t *base);
                    122: 
                    123: #if    id386
                    124: 
                    125: void R_DrawSurfaceBlock8_mip0 (void);
                    126: void R_DrawSurfaceBlock8_mip1 (void);
                    127: void R_DrawSurfaceBlock8_mip2 (void);
                    128: void R_DrawSurfaceBlock8_mip3 (void);
                    129: 
                    130: #endif
                    131: 
                    132: void R_GenSkyTile (void *pdest);
                    133: void R_GenSkyTile16 (void *pdest);
                    134: void R_Surf8Patch (void);
                    135: void R_Surf16Patch (void);
                    136: void R_DrawSubmodelPolygons (model_t *pmodel, int clipflags);
                    137: void R_DrawSolidClippedSubmodelPolygons (model_t *pmodel);
                    138: 
                    139: void R_AddPolygonEdges (emitpoint_t *pverts, int numverts, int miplevel);
                    140: surf_t *R_GetSurf (void);
                    141: void R_AliasDrawModel (alight_t *plighting);
                    142: void R_BeginEdgeFrame (void);
                    143: void R_ScanEdges (void);
                    144: void D_DrawSurfaces (void);
                    145: void R_InsertNewEdges (edge_t *edgestoadd, edge_t *edgelist);
                    146: void R_StepActiveU (edge_t *pedge);
                    147: void R_RemoveEdges (edge_t *pedge);
                    148: 
                    149: extern void R_Surf8Start (void);
                    150: extern void R_Surf8End (void);
                    151: extern void R_Surf16Start (void);
                    152: extern void R_Surf16End (void);
                    153: 
                    154: extern void R_RotateBmodel (void);
                    155: 
                    156: extern int     c_faceclip;
                    157: extern int     r_polycount;
                    158: extern int     r_wholepolycount;
                    159: 
                    160: extern model_t         *cl_worldmodel;
                    161: 
                    162: extern int             *pfrustum_indexes[4];
                    163: 
                    164: // !!! if this is changed, it must be changed in asm_draw.h too !!!
                    165: #define        NEAR_CLIP       0.01
                    166: 
                    167: extern int                     ubasestep, errorterm, erroradjustup, erroradjustdown;
                    168: extern int                     vstartscan;
                    169: 
                    170: extern fixed16_t       sadjust, tadjust;
                    171: extern fixed16_t       bbextents, bbextentt;
                    172: 
                    173: #define MAXBVERTINDEXES        1000    // new clipped vertices when clipping bmodels
                    174:                                                                //  to the world BSP
                    175: extern mvertex_t       *r_ptverts, *r_ptvertsmax;
                    176: 
                    177: extern vec3_t                  sbaseaxis[3], tbaseaxis[3];
                    178: extern float                   entity_rotation[3][3];
                    179: 
                    180: extern int             reinit_surfcache;
                    181: 
                    182: extern int             r_currentkey;
                    183: extern int             r_currentbkey;
                    184: 
                    185: typedef struct btofpoly_s {
                    186:        int                     clipflags;
                    187:        msurface_t      *psurf;
                    188: } btofpoly_t;
                    189: 
                    190: #define MAX_BTOFPOLYS  5000    // FIXME: tune this
                    191: 
                    192: extern int                     numbtofpolys;
                    193: extern btofpoly_t      *pbtofpolys;
                    194: 
                    195: void   R_InitTurb (void);
                    196: void   R_ZDrawSubmodelPolys (model_t *clmodel);
                    197: 
                    198: //=========================================================
                    199: // Alias models
                    200: //=========================================================
                    201: 
                    202: #define MAXALIASVERTS          2000    // TODO: tune this
                    203: #define ALIAS_Z_CLIP_PLANE     5
                    204: 
                    205: extern int                             numverts;
                    206: extern int                             a_skinwidth;
                    207: extern mtriangle_t             *ptriangles;
                    208: extern int                             numtriangles;
                    209: extern aliashdr_t              *paliashdr;
                    210: extern mdl_t                   *pmdl;
                    211: extern float                   leftclip, topclip, rightclip, bottomclip;
                    212: extern int                             r_acliptype;
                    213: extern finalvert_t             *pfinalverts;
                    214: extern auxvert_t               *pauxverts;
                    215: 
                    216: qboolean R_AliasCheckBBox (void);
                    217: 
                    218: //=========================================================
                    219: // turbulence stuff
                    220: 
                    221: #define        AMP             8*0x10000
                    222: #define        AMP2    3
                    223: #define        SPEED   20
                    224: 
                    225: //=========================================================
                    226: // particle stuff
                    227: 
                    228: void R_DrawParticles (void);
                    229: void R_InitParticles (void);
                    230: void R_ClearParticles (void);
                    231: void R_ReadPointFile_f (void);
                    232: void R_SurfacePatch (void);
                    233: 
                    234: extern int             r_amodels_drawn;
                    235: extern edge_t  *auxedges;
                    236: extern int             r_numallocatededges;
                    237: extern edge_t  *r_edges, *edge_p, *edge_max;
                    238: 
                    239: extern edge_t  *newedges[MAXHEIGHT];
                    240: extern edge_t  *removeedges[MAXHEIGHT];
                    241: 
                    242: extern int     screenwidth;
                    243: 
                    244: // FIXME: make stack vars when debugging done
                    245: extern edge_t  edge_head;
                    246: extern edge_t  edge_tail;
                    247: extern edge_t  edge_aftertail;
                    248: extern int             r_bmodelactive;
                    249: extern vrect_t *pconupdate;
                    250: 
                    251: extern float           aliasxscale, aliasyscale, aliasxcenter, aliasycenter;
                    252: extern float           r_aliastransition, r_resfudge;
                    253: 
                    254: extern int             r_outofsurfaces;
                    255: extern int             r_outofedges;
                    256: 
                    257: extern mvertex_t       *r_pcurrentvertbase;
                    258: extern int                     r_maxvalidedgeoffset;
                    259: 
                    260: void R_AliasClipTriangle (mtriangle_t *ptri);
                    261: 
                    262: extern float   r_time1;
                    263: extern float   dp_time1, dp_time2, db_time1, db_time2, rw_time1, rw_time2;
                    264: extern float   se_time1, se_time2, de_time1, de_time2, dv_time1, dv_time2;
                    265: extern int             r_frustum_indexes[4*6];
                    266: extern int             r_maxsurfsseen, r_maxedgesseen, r_cnumsurfs;
                    267: extern qboolean        r_surfsonstack;
                    268: extern cshift_t        cshift_water;
                    269: extern qboolean        r_dowarpold, r_viewchanged;
                    270: 
                    271: extern mleaf_t *r_viewleaf, *r_oldviewleaf;
                    272: 
                    273: extern vec3_t  r_emins, r_emaxs;
                    274: extern mnode_t *r_pefragtopnode;
                    275: extern int             r_clipflags;
                    276: extern int             r_dlightframecount;
                    277: extern qboolean        r_fov_greater_than_90;
                    278: 
                    279: void R_StoreEfrags (efrag_t **ppefrag);
                    280: void R_TimeRefresh_f (void);
                    281: void R_TimeGraph (void);
                    282: void R_PrintAliasStats (void);
                    283: void R_PrintTimes (void);
                    284: void R_PrintDSpeeds (void);
                    285: void R_AnimateLight (void);
                    286: int R_LightPoint (vec3_t p);
                    287: void R_SetupFrame (void);
                    288: void R_cshift_f (void);
                    289: void R_EmitEdge (mvertex_t *pv0, mvertex_t *pv1);
                    290: void R_ClipEdge (mvertex_t *pv0, mvertex_t *pv1, clipplane_t *clip);
                    291: void R_SplitEntityOnNode2 (mnode_t *node);
                    292: void R_MarkLights (dlight_t *light, int bit, mnode_t *node);
                    293: 

unix.superglobalmegacorp.com

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