Annotation of quake1/r_shared.h, revision 1.1

1.1     ! root        1: // r_shared.h: general refresh-related stuff shared between the refresh and the
        !             2: // driver
        !             3: 
        !             4: // FIXME: clean up and move into d_iface.h
        !             5: 
        !             6: #ifndef _R_SHARED_H_
        !             7: #define _R_SHARED_H_
        !             8: 
        !             9: #define        MAXVERTS        16                                      // max points in a surface polygon
        !            10: #define MAXWORKINGVERTS        (MAXVERTS+4)    // max points in an intermediate
        !            11:                                                                                //  polygon (while processing)
        !            12: // !!! if this is changed, it must be changed in d_ifacea.h too !!!
        !            13: #define        MAXHEIGHT       1024
        !            14: #define        MAXWIDTH        1280
        !            15: 
        !            16: #define INFINITE_DISTANCE      0x10000         // distance that's always guaranteed to
        !            17:                                                                                //  be farther away than anything in
        !            18:                                                                                //  the scene
        !            19: 
        !            20: //===================================================================
        !            21: 
        !            22: extern void    R_DrawLine (polyvert_t *polyvert0, polyvert_t *polyvert1);
        !            23: 
        !            24: extern int             cachewidth;
        !            25: extern pixel_t *cacheblock;
        !            26: extern int             screenwidth;
        !            27: 
        !            28: extern float   pixelAspect;
        !            29: 
        !            30: extern int             r_drawnpolycount;
        !            31: 
        !            32: extern cvar_t  r_clearcolor;
        !            33: 
        !            34: extern int     sintable[1280];
        !            35: extern int     intsintable[1280];
        !            36: 
        !            37: extern vec3_t  vup, base_vup;
        !            38: extern vec3_t  vpn, base_vpn;
        !            39: extern vec3_t  vright, base_vright;
        !            40: extern entity_t                *currententity;
        !            41: 
        !            42: #define NUMSTACKEDGES          2000
        !            43: #define        MINEDGES                        NUMSTACKEDGES
        !            44: #define NUMSTACKSURFACES       1000
        !            45: #define MINSURFACES                    NUMSTACKSURFACES
        !            46: #define        MAXSPANS                        3000
        !            47: 
        !            48: // !!! if this is changed, it must be changed in asm_draw.h too !!!
        !            49: typedef struct espan_s
        !            50: {
        !            51:        int                             u, v, count;
        !            52:        struct espan_s  *pnext;
        !            53: } espan_t;
        !            54: 
        !            55: // FIXME: compress, make a union if that will help
        !            56: // insubmodel is only 1, flags is fewer than 32, spanstate could be a byte
        !            57: typedef struct surf_s
        !            58: {
        !            59:        struct surf_s   *next;                  // active surface stack in r_edge.c
        !            60:        struct surf_s   *prev;                  // used in r_edge.c for active surf stack
        !            61:        struct espan_s  *spans;                 // pointer to linked list of spans to draw
        !            62:        int                     key;                            // sorting key (BSP order)
        !            63:        int                     last_u;                         // set during tracing
        !            64:        int                     spanstate;                      // 0 = not in span
        !            65:                                                                        // 1 = in span
        !            66:                                                                        // -1 = in inverted span (end before
        !            67:                                                                        //  start)
        !            68:        int                     flags;                          // currentface flags
        !            69:        void            *data;                          // associated data like msurface_t
        !            70:        entity_t        *entity;
        !            71:        float           nearzi;                         // nearest 1/z on surface, for mipmapping
        !            72:        qboolean        insubmodel;
        !            73:        float           d_ziorigin, d_zistepu, d_zistepv;
        !            74: 
        !            75:        int                     pad[2];                         // to 64 bytes
        !            76: } surf_t;
        !            77: 
        !            78: extern surf_t  *surfaces, *surface_p, *surf_max;
        !            79: 
        !            80: // surfaces are generated in back to front order by the bsp, so if a surf
        !            81: // pointer is greater than another one, it should be drawn in front
        !            82: // surfaces[1] is the background, and is used as the active surface stack.
        !            83: // surfaces[0] is a dummy, because index 0 is used to indicate no surface
        !            84: //  attached to an edge_t
        !            85: 
        !            86: //===================================================================
        !            87: 
        !            88: extern vec3_t  sxformaxis[4];  // s axis transformed into viewspace
        !            89: extern vec3_t  txformaxis[4];  // t axis transformed into viewspac
        !            90: 
        !            91: extern vec3_t  modelorg;
        !            92: 
        !            93: extern float   xcenter, ycenter;
        !            94: extern float   xscale, yscale;
        !            95: extern float   xscaleinv, yscaleinv;
        !            96: extern float   xscaleshrink, yscaleshrink;
        !            97: 
        !            98: extern int d_lightstylevalue[256]; // 8.8 frac of base light value
        !            99: 
        !           100: extern void TransformVector (vec3_t in, vec3_t out);
        !           101: extern void SetUpForLineScan(fixed8_t startvertu, fixed8_t startvertv,
        !           102:        fixed8_t endvertu, fixed8_t endvertv);
        !           103: 
        !           104: extern int     r_skymade;
        !           105: extern void R_MakeSky (void);
        !           106: 
        !           107: extern int     ubasestep, errorterm, erroradjustup, erroradjustdown;
        !           108: 
        !           109: // flags in finalvert_t.flags
        !           110: #define ALIAS_LEFT_CLIP                                0x0001
        !           111: #define ALIAS_TOP_CLIP                         0x0002
        !           112: #define ALIAS_RIGHT_CLIP                       0x0004
        !           113: #define ALIAS_BOTTOM_CLIP                      0x0008
        !           114: #define ALIAS_Z_CLIP                           0x0010
        !           115: // !!! if this is changed, it must be changed in d_ifacea.h too !!!
        !           116: #define ALIAS_ONSEAM                           0x0020  // also defined in modelgen.h;
        !           117:                                                                                        //  must be kept in sync
        !           118: #define ALIAS_XY_CLIP_MASK                     0x000F
        !           119: 
        !           120: // !!! if this is changed, it must be changed in asm_draw.h too !!!
        !           121: typedef struct edge_s
        !           122: {
        !           123:        fixed16_t               u;
        !           124:        fixed16_t               u_step;
        !           125:        struct edge_s   *prev, *next;
        !           126:        unsigned short  surfs[2];
        !           127:        struct edge_s   *nextremove;
        !           128:        float                   nearzi;
        !           129:        medge_t                 *owner;
        !           130: } edge_t;
        !           131: 
        !           132: #endif // _R_SHARED_H_
        !           133: 

unix.superglobalmegacorp.com

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