|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.