Annotation of quake1/render.h, revision 1.1.1.1

1.1       root        1: 
                      2: // refresh.h -- public interface to refresh functions
                      3: 
                      4: #define        MAXCLIPPLANES   11
                      5: 
                      6: #define        TOP_RANGE               16                      // soldier uniform colors
                      7: #define        BOTTOM_RANGE    96
                      8: 
                      9: //=============================================================================
                     10: 
                     11: typedef struct efrag_s
                     12: {
                     13:        struct mleaf_s          *leaf;
                     14:        struct efrag_s          *leafnext;
                     15:        struct entity_s         *entity;
                     16:        struct efrag_s          *entnext;
                     17: } efrag_t;
                     18: 
                     19: 
                     20: typedef struct entity_s
                     21: {
                     22:        qboolean                                forcelink;              // model changed
                     23: 
                     24:        int                                             update_type;
                     25: 
                     26:        entity_state_t                  baseline;               // to fill in defaults in updates
                     27: 
                     28:        double                                  msgtime;                // time of last update
                     29:        vec3_t                                  msg_origins[2]; // last two updates (0 is newest)       
                     30:        vec3_t                                  origin;
                     31:        vec3_t                                  msg_angles[2];  // last two updates (0 is newest)
                     32:        vec3_t                                  angles; 
                     33:        struct model_s                  *model;                 // NULL = no model
                     34:        struct efrag_s                  *efrag;                 // linked list of efrags
                     35:        int                                             frame;
                     36:        float                                   syncbase;               // for client-side animations
                     37:        byte                                    *colormap;
                     38:        int                                             effects;                // light, particals, etc
                     39:        int                                             skinnum;                // for Alias models
                     40:        int                                             visframe;               // last frame this entity was
                     41:                                                                                        //  found in an active leaf
                     42:                                                                                        
                     43:        int                                             dlightframe;    // dynamic lighting
                     44:        int                                             dlightbits;
                     45:        
                     46: // FIXME: could turn these into a union
                     47:        int                                             trivial_accept;
                     48:        struct mnode_s                  *topnode;               // for bmodels, first world node
                     49:                                                                                        //  that splits bmodel, or NULL if
                     50:                                                                                        //  not split
                     51: } entity_t;
                     52: 
                     53: // !!! if this is changed, it must be changed in asm_draw.h too !!!
                     54: typedef struct
                     55: {
                     56:        vrect_t         vrect;                          // subwindow in video for refresh
                     57:                                                                        // FIXME: not need vrect next field here?
                     58:        vrect_t         aliasvrect;                     // scaled Alias version
                     59:        int                     vrectright, vrectbottom;        // right & bottom screen coords
                     60:        int                     aliasvrectright, aliasvrectbottom;      // scaled Alias versions
                     61:        float           vrectrightedge;                 // rightmost right edge we care about,
                     62:                                                                                //  for use in edge list
                     63:        float           fvrectx, fvrecty;               // for floating-point compares
                     64:        float           fvrectx_adj, fvrecty_adj; // left and top edges, for clamping
                     65:        int                     vrect_x_adj_shift20;    // (vrect.x + 0.5 - epsilon) << 20
                     66:        int                     vrectright_adj_shift20; // (vrectright + 0.5 - epsilon) << 20
                     67:        float           fvrectright_adj, fvrectbottom_adj;
                     68:                                                                                // right and bottom edges, for clamping
                     69:        float           fvrectright;                    // rightmost edge, for Alias clamping
                     70:        float           fvrectbottom;                   // bottommost edge, for Alias clamping
                     71:        float           horizontalFieldOfView;  // at Z = 1.0, this many X is visible 
                     72:                                                                                // 2.0 = 90 degrees
                     73:        float           xOrigin;                        // should probably allways be 0.5
                     74:        float           yOrigin;                        // between be around 0.3 to 0.5
                     75: 
                     76:        vec3_t          vieworg;
                     77:        vec3_t          viewangles;
                     78:        
                     79:        int                     ambientlight;
                     80: } refdef_t;
                     81: 
                     82: 
                     83: //
                     84: // refresh
                     85: //
                     86: extern int             reinit_surfcache;
                     87: 
                     88: 
                     89: extern refdef_t        r_refdef;
                     90: extern vec3_t  r_origin, vpn, vright, vup;
                     91: 
                     92: extern struct texture_s        *r_notexture_mip;
                     93: 
                     94: 
                     95: void R_Init (void);
                     96: void R_InitTextures (void);
                     97: void R_InitEfrags (void);
                     98: void R_RenderView (void);              // must set r_refdef first
                     99: void R_ViewChanged (vrect_t *pvrect, int lineadj, float aspect);
                    100:                                                                // called whenever r_refdef or vid change
                    101: void R_InitSky (struct texture_s *mt); // called at level load
                    102: 
                    103: void R_AddEfrags (entity_t *ent);
                    104: void R_RemoveEfrags (entity_t *ent);
                    105: 
                    106: void R_NewMap (void);
                    107: 
                    108: 
                    109: void R_ParseParticleEffect (void);
                    110: void R_RunParticleEffect (vec3_t org, vec3_t dir, int color, int count);
                    111: void R_RocketTrail (vec3_t start, vec3_t end, int type);
                    112: 
                    113: void R_EntityParticles (entity_t *ent);
                    114: void R_BlobExplosion (vec3_t org);
                    115: void R_ParticleExplosion (vec3_t org);
                    116: void R_LavaSplash (vec3_t org);
                    117: void R_TeleportSplash (vec3_t org);
                    118: 
                    119: void R_PushDlights (void);
                    120: 
                    121: 
                    122: //
                    123: // surface cache related
                    124: //
                    125: extern int             reinit_surfcache;       // if 1, surface cache is currently empty and
                    126: extern qboolean        r_cache_thrash; // set if thrashing the surface cache
                    127: 
                    128: int    D_SurfaceCacheForRes (int width, int height);
                    129: void D_FlushCaches (void);
                    130: void D_DeleteSurfaceCache (void);
                    131: void D_InitCaches (void *buffer, int size);
                    132: void R_SetVrect (vrect_t *pvrect, vrect_t *pvrectin, int lineadj);
                    133: 

unix.superglobalmegacorp.com

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