Annotation of quake2/client/ref.h, revision 1.1.1.1

1.1       root        1: 
                      2: #include "../qcommon/qcommon.h"
                      3: #define        MAX_DLIGHTS             32
                      4: #define        MAX_ENTITIES    128
                      5: #define        MAX_PARTICLES   4096
                      6: #define        MAX_LIGHTSTYLES 256
                      7: #define POWERSUIT_SCALE                4.0F
                      8: #define SHELL_RED_COLOR                0xF2
                      9: #define SHELL_GREEN_COLOR      0xD0
                     10: #define SHELL_BLUE_COLOR       0xF3
                     11: #define SHELL_RG_COLOR         0xDC
                     12: #define SHELL_RB_COLOR         0x86
                     13: #define SHELL_BG_COLOR         0x78
                     14: #define SHELL_WHITE_COLOR      0xD7
                     15: typedef struct entity_s
                     16: {
                     17:        struct model_s          *model;                 // opaque type outside refresh
                     18:        float                           angles[3];
                     19:        /*
                     20:        ** most recent data
                     21:        */
                     22:        float                           origin[3];              // also used as RF_BEAM's "from"
                     23:        int                                     frame;                  // also used as RF_BEAM's diameter
                     24:        /*
                     25:        ** previous data for lerping
                     26:        */
                     27:        float                           oldorigin[3];   // also used as RF_BEAM's "to"
                     28:        int                                     oldframe;
                     29:        /*
                     30:        ** misc
                     31:        */
                     32:        float   backlerp;                               // 0.0 = current, 1.0 = old
                     33:        int             skinnum;                                // also used as RF_BEAM's palette index
                     34:        int             lightstyle;                             // for flashing entities
                     35:        float   alpha;                                  // ignore if RF_TRANSLUCENT isn't set
                     36:        struct image_s  *skin;                  // NULL for inline skin
                     37:        int             flags;
                     38: } entity_t;
                     39: #define ENTITY_FLAGS  68
                     40: typedef struct
                     41: {
                     42:        vec3_t  origin;
                     43:        vec3_t  color;
                     44:        float   intensity;
                     45: } dlight_t;
                     46: typedef struct
                     47: {
                     48:        vec3_t  origin;
                     49:        int             color;
                     50:        float   alpha;
                     51: } particle_t;
                     52: typedef struct
                     53: {
                     54:        float           rgb[3];                 // 0.0 - 2.0
                     55:        float           white;                  // highest of rgb
                     56: } lightstyle_t;
                     57: typedef struct
                     58: {
                     59:        int                     x, y, width, height;// in virtual screen coordinates
                     60:        float           fov_x, fov_y;
                     61:        float           vieworg[3];
                     62:        float           viewangles[3];
                     63:        float           blend[4];                       // rgba 0-1 full screen blend
                     64:        float           time;                           // time is uesed to auto animate
                     65:        int                     rdflags;                        // RDF_UNDERWATER, etc
                     66:        byte            *areabits;                      // if not NULL, only areas with set bits will be drawn
                     67:        lightstyle_t    *lightstyles;   // [MAX_LIGHTSTYLES]
                     68:        int                     num_entities;
                     69:        entity_t        *entities;
                     70:        int                     num_dlights;
                     71:        dlight_t        *dlights;
                     72:        int                     num_particles;
                     73:        particle_t      *particles;
                     74: } refdef_t;
                     75: #define        API_VERSION             3
                     76: //
                     77: // these are the functions exported by the refresh module
                     78: //
                     79: typedef struct
                     80: {
                     81:        // if api_version is different, the dll cannot be used
                     82:        int             api_version;
                     83:        // called when the library is loaded
                     84:        qboolean        (*Init) ( void *hinstance, void *wndproc );
                     85:        // called before the library is unloaded
                     86:        void    (*Shutdown) (void);
                     87:        // All data that will be used in a level should be
                     88:        // registered before rendering any frames to prevent disk hits,
                     89:        // but they can still be registered at a later time
                     90:        // if necessary.
                     91:        //
                     92:        // EndRegistration will free any remaining data that wasn't registered.
                     93:        // Any model_s or skin_s pointers from before the BeginRegistration
                     94:        // are no longer valid after EndRegistration.
                     95:        //
                     96:        // Skins and images need to be differentiated, because skins
                     97:        // are flood filled to eliminate mip map edge errors, and pics have
                     98:        // an implicit "pics/" prepended to the name. (a pic name that starts with a
                     99:        // slash will not use the "pics/" prefix or the ".pcx" postfix)
                    100:        void    (*BeginRegistration) (char *map);
                    101:        struct model_s *(*RegisterModel) (char *name);
                    102:        struct image_s *(*RegisterSkin) (char *name);
                    103:        struct image_s *(*RegisterPic) (char *name);
                    104:        void    (*SetSky) (char *name, float rotate, vec3_t axis);
                    105:        void    (*EndRegistration) (void);
                    106:        void    (*RenderFrame) (refdef_t *fd);
                    107:        void    (*DrawGetPicSize) (int *w, int *h, char *name); // will return 0 0 if not found
                    108:        void    (*DrawPic) (int x, int y, char *name);
                    109:        void    (*DrawStretchPic) (int x, int y, int w, int h, char *name);
                    110:        void    (*DrawChar) (int x, int y, int c);
                    111:        void    (*DrawTileClear) (int x, int y, int w, int h, char *name);
                    112:        void    (*DrawFill) (int x, int y, int w, int h, int c);
                    113:        void    (*DrawFadeScreen) (void);
                    114:        // Draw images for cinematic rendering (which can have a different palette). Note that calls
                    115:        void    (*DrawStretchRaw) (int x, int y, int w, int h, int cols, int rows, byte *data);
                    116:        /*
                    117:        ** video mode and refresh state management entry points
                    118:        */
                    119:        void    (*CinematicSetPalette)( const unsigned char *palette);  // NULL = game palette
                    120:        void    (*BeginFrame)( float camera_separation );
                    121:        void    (*EndFrame) (void);
                    122:        void    (*AppActivate)( qboolean activate );
                    123: } refexport_t;
                    124: //
                    125: // these are the functions imported by the refresh module
                    126: //
                    127: typedef struct
                    128: {
                    129:        void    (*Sys_Error) (int err_level, char *str, ...);
                    130:        void    (*Cmd_AddCommand) (char *name, void(*cmd)(void));
                    131:        void    (*Cmd_RemoveCommand) (char *name);
                    132:        int             (*Cmd_Argc) (void);
                    133:        char    *(*Cmd_Argv) (int i);
                    134:        void    (*Cmd_ExecuteText) (int exec_when, char *text);
                    135:        void    (*Con_Printf) (int print_level, char *str, ...);
                    136:        // files will be memory mapped read only
                    137:        // the returned buffer may be part of a larger pak file,
                    138:        // or a discrete file from anywhere in the quake search path
                    139:        // a -1 return means the file does not exist
                    140:        // NULL can be passed for buf to just determine existance
                    141:        int             (*FS_LoadFile) (char *name, void **buf);
                    142:        void    (*FS_FreeFile) (void *buf);
                    143:        // gamedir will be the current directory that generated
                    144:        // files should be stored to, ie: "f:\quake\id1"
                    145:        char    *(*FS_Gamedir) (void);
                    146:        cvar_t  *(*Cvar_Get) (char *name, char *value, int flags);
                    147:        cvar_t  *(*Cvar_Set)( char *name, char *value );
                    148:        void     (*Cvar_SetValue)( char *name, float value );
                    149:        qboolean        (*Vid_GetModeInfo)( int *width, int *height, int mode );
                    150:        void            (*Vid_MenuInit)( void );
                    151:        void            (*Vid_NewWindow)( int width, int height );
                    152: } refimport_t;
                    153: // this is the only function actually exported at the linker level
                    154: typedef        refexport_t     (*GetRefAPI_t) (refimport_t);

unix.superglobalmegacorp.com

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