Annotation of quake1/r_local.h, revision 1.1.1.2

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

unix.superglobalmegacorp.com

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