Annotation of quakeworld/client/glquake.h, revision 1.1

1.1     ! root        1: /*
        !             2: Copyright (C) 1996-1997 Id Software, Inc.
        !             3: 
        !             4: This program is free software; you can redistribute it and/or
        !             5: modify it under the terms of the GNU General Public License
        !             6: as published by the Free Software Foundation; either version 2
        !             7: of the License, or (at your option) any later version.
        !             8: 
        !             9: This program is distributed in the hope that it will be useful,
        !            10: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
        !            12: 
        !            13: See the GNU General Public License for more details.
        !            14: 
        !            15: You should have received a copy of the GNU General Public License
        !            16: along with this program; if not, write to the Free Software
        !            17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
        !            18: 
        !            19: */
        !            20: // disable data conversion warnings
        !            21: 
        !            22: #pragma warning(disable : 4244)     // MIPS
        !            23: #pragma warning(disable : 4136)     // X86
        !            24: #pragma warning(disable : 4051)     // ALPHA
        !            25:   
        !            26: #ifdef _WIN32
        !            27: #include <windows.h>
        !            28: #endif
        !            29: 
        !            30: #include <GL/gl.h>
        !            31: #include <GL/glu.h>
        !            32: 
        !            33: void GL_BeginRendering (int *x, int *y, int *width, int *height);
        !            34: void GL_EndRendering (void);
        !            35: 
        !            36: 
        !            37: // Function prototypes for the Texture Object Extension routines
        !            38: typedef GLboolean (APIENTRY *ARETEXRESFUNCPTR)(GLsizei, const GLuint *,
        !            39:                     const GLboolean *);
        !            40: typedef void (APIENTRY *BINDTEXFUNCPTR)(GLenum, GLuint);
        !            41: typedef void (APIENTRY *DELTEXFUNCPTR)(GLsizei, const GLuint *);
        !            42: typedef void (APIENTRY *GENTEXFUNCPTR)(GLsizei, GLuint *);
        !            43: typedef GLboolean (APIENTRY *ISTEXFUNCPTR)(GLuint);
        !            44: typedef void (APIENTRY *PRIORTEXFUNCPTR)(GLsizei, const GLuint *,
        !            45:                     const GLclampf *);
        !            46: typedef void (APIENTRY *TEXSUBIMAGEPTR)(int, int, int, int, int, int, int, int, void *);
        !            47: 
        !            48: extern BINDTEXFUNCPTR bindTexFunc;
        !            49: extern DELTEXFUNCPTR delTexFunc;
        !            50: extern TEXSUBIMAGEPTR TexSubImage2DFunc;
        !            51: 
        !            52: extern int texture_extension_number;
        !            53: extern int             texture_mode;
        !            54: 
        !            55: extern float   gldepthmin, gldepthmax;
        !            56: 
        !            57: void GL_Upload32 (unsigned *data, int width, int height,  qboolean mipmap, qboolean alpha);
        !            58: void GL_Upload8 (byte *data, int width, int height,  qboolean mipmap, qboolean alpha);
        !            59: void GL_Upload8_EXT (byte *data, int width, int height,  qboolean mipmap, qboolean alpha);
        !            60: int GL_LoadTexture (char *identifier, int width, int height, byte *data, qboolean mipmap, qboolean alpha);
        !            61: int GL_FindTexture (char *identifier);
        !            62: 
        !            63: typedef struct
        !            64: {
        !            65:        float   x, y, z;
        !            66:        float   s, t;
        !            67:        float   r, g, b;
        !            68: } glvert_t;
        !            69: 
        !            70: extern glvert_t glv;
        !            71: 
        !            72: extern int glx, gly, glwidth, glheight;
        !            73: 
        !            74: #ifdef _WIN32
        !            75: extern PROC glArrayElementEXT;
        !            76: extern PROC glColorPointerEXT;
        !            77: extern PROC glTexturePointerEXT;
        !            78: extern PROC glVertexPointerEXT;
        !            79: #endif
        !            80: 
        !            81: // r_local.h -- private refresh defs
        !            82: 
        !            83: #define ALIAS_BASE_SIZE_RATIO          (1.0 / 11.0)
        !            84:                                        // normalizing factor so player model works out to about
        !            85:                                        //  1 pixel per triangle
        !            86: #define        MAX_LBM_HEIGHT          480
        !            87: 
        !            88: #define TILE_SIZE              128             // size of textures generated by R_GenTiledSurf
        !            89: 
        !            90: #define SKYSHIFT               7
        !            91: #define        SKYSIZE                 (1 << SKYSHIFT)
        !            92: #define SKYMASK                        (SKYSIZE - 1)
        !            93: 
        !            94: #define BACKFACE_EPSILON       0.01
        !            95: 
        !            96: 
        !            97: void R_TimeRefresh_f (void);
        !            98: void R_ReadPointFile_f (void);
        !            99: texture_t *R_TextureAnimation (texture_t *base);
        !           100: 
        !           101: typedef struct surfcache_s
        !           102: {
        !           103:        struct surfcache_s      *next;
        !           104:        struct surfcache_s      **owner;                // NULL is an empty chunk of memory
        !           105:        int                                     lightadj[MAXLIGHTMAPS]; // checked for strobe flush
        !           106:        int                                     dlight;
        !           107:        int                                     size;           // including header
        !           108:        unsigned                        width;
        !           109:        unsigned                        height;         // DEBUG only needed for debug
        !           110:        float                           mipscale;
        !           111:        struct texture_s        *texture;       // checked for animating textures
        !           112:        byte                            data[4];        // width*height elements
        !           113: } surfcache_t;
        !           114: 
        !           115: 
        !           116: typedef struct
        !           117: {
        !           118:        pixel_t         *surfdat;       // destination for generated surface
        !           119:        int                     rowbytes;       // destination logical width in bytes
        !           120:        msurface_t      *surf;          // description for surface to generate
        !           121:        fixed8_t        lightadj[MAXLIGHTMAPS];
        !           122:                                                        // adjust for lightmap levels for dynamic lighting
        !           123:        texture_t       *texture;       // corrected for animating textures
        !           124:        int                     surfmip;        // mipmapped ratio of surface texels / world pixels
        !           125:        int                     surfwidth;      // in mipmapped texels
        !           126:        int                     surfheight;     // in mipmapped texels
        !           127: } drawsurf_t;
        !           128: 
        !           129: 
        !           130: typedef enum {
        !           131:        pt_static, pt_grav, pt_slowgrav, pt_fire, pt_explode, pt_explode2, pt_blob, pt_blob2
        !           132: } ptype_t;
        !           133: 
        !           134: // !!! if this is changed, it must be changed in d_ifacea.h too !!!
        !           135: typedef struct particle_s
        !           136: {
        !           137: // driver-usable fields
        !           138:        vec3_t          org;
        !           139:        float           color;
        !           140: // drivers never touch the following fields
        !           141:        struct particle_s       *next;
        !           142:        vec3_t          vel;
        !           143:        float           ramp;
        !           144:        float           die;
        !           145:        ptype_t         type;
        !           146: } particle_t;
        !           147: 
        !           148: 
        !           149: //====================================================
        !           150: 
        !           151: 
        !           152: extern entity_t        r_worldentity;
        !           153: extern qboolean        r_cache_thrash;         // compatability
        !           154: extern vec3_t          modelorg, r_entorigin;
        !           155: extern entity_t        *currententity;
        !           156: extern int                     r_visframecount;        // ??? what difs?
        !           157: extern int                     r_framecount;
        !           158: extern mplane_t        frustum[4];
        !           159: extern int             c_brush_polys, c_alias_polys;
        !           160: 
        !           161: 
        !           162: //
        !           163: // view origin
        !           164: //
        !           165: extern vec3_t  vup;
        !           166: extern vec3_t  vpn;
        !           167: extern vec3_t  vright;
        !           168: extern vec3_t  r_origin;
        !           169: 
        !           170: //
        !           171: // screen size info
        !           172: //
        !           173: extern refdef_t        r_refdef;
        !           174: extern mleaf_t         *r_viewleaf, *r_oldviewleaf;
        !           175: extern texture_t       *r_notexture_mip;
        !           176: extern int             d_lightstylevalue[256]; // 8.8 fraction of base light value
        !           177: 
        !           178: extern qboolean        envmap;
        !           179: extern int     currenttexture;
        !           180: extern int     cnttextures[2];
        !           181: extern int     particletexture;
        !           182: extern int     netgraphtexture;        // netgraph texture
        !           183: extern int     playertextures;
        !           184: 
        !           185: extern int     skytexturenum;          // index in cl.loadmodel, not gl texture object
        !           186: 
        !           187: extern cvar_t  r_norefresh;
        !           188: extern cvar_t  r_drawentities;
        !           189: extern cvar_t  r_drawworld;
        !           190: extern cvar_t  r_drawviewmodel;
        !           191: extern cvar_t  r_speeds;
        !           192: extern cvar_t  r_waterwarp;
        !           193: extern cvar_t  r_fullbright;
        !           194: extern cvar_t  r_lightmap;
        !           195: extern cvar_t  r_shadows;
        !           196: extern cvar_t  r_mirroralpha;
        !           197: extern cvar_t  r_wateralpha;
        !           198: extern cvar_t  r_dynamic;
        !           199: extern cvar_t  r_novis;
        !           200: extern cvar_t  r_netgraph;
        !           201: 
        !           202: extern cvar_t  gl_clear;
        !           203: extern cvar_t  gl_cull;
        !           204: extern cvar_t  gl_poly;
        !           205: extern cvar_t  gl_texsort;
        !           206: extern cvar_t  gl_smoothmodels;
        !           207: extern cvar_t  gl_affinemodels;
        !           208: extern cvar_t  gl_polyblend;
        !           209: extern cvar_t  gl_keeptjunctions;
        !           210: extern cvar_t  gl_reporttjunctions;
        !           211: extern cvar_t  gl_flashblend;
        !           212: extern cvar_t  gl_nocolors;
        !           213: extern cvar_t  gl_finish;
        !           214: 
        !           215: extern int             gl_lightmap_format;
        !           216: extern int             gl_solid_format;
        !           217: extern int             gl_alpha_format;
        !           218: 
        !           219: extern cvar_t  gl_max_size;
        !           220: extern cvar_t  gl_playermip;
        !           221: 
        !           222: extern int                     mirrortexturenum;       // quake texturenum, not gltexturenum
        !           223: extern qboolean        mirror;
        !           224: extern mplane_t        *mirror_plane;
        !           225: 
        !           226: extern float   r_world_matrix[16];
        !           227: 
        !           228: extern const char *gl_vendor;
        !           229: extern const char *gl_renderer;
        !           230: extern const char *gl_version;
        !           231: extern const char *gl_extensions;
        !           232: 
        !           233: void R_TranslatePlayerSkin (int playernum);
        !           234: void GL_Bind (int texnum);
        !           235: 
        !           236: // Multitexture
        !           237: #define    TEXTURE0_SGIS                               0x835E
        !           238: #define    TEXTURE1_SGIS                               0x835F
        !           239: 
        !           240: #ifdef _WIN32
        !           241: typedef void (APIENTRY *lpMTexFUNC) (GLenum, GLfloat, GLfloat);
        !           242: typedef void (APIENTRY *lpSelTexFUNC) (GLenum);
        !           243: extern lpMTexFUNC qglMTexCoord2fSGIS;
        !           244: extern lpSelTexFUNC qglSelectTextureSGIS;
        !           245: #endif
        !           246: 
        !           247: extern qboolean gl_mtexable;
        !           248: 
        !           249: void GL_DisableMultitexture(void);
        !           250: void GL_EnableMultitexture(void);
        !           251: 
        !           252: //
        !           253: // gl_warp.c
        !           254: //
        !           255: void GL_SubdivideSurface (msurface_t *fa);
        !           256: void EmitBothSkyLayers (msurface_t *fa);
        !           257: void EmitWaterPolys (msurface_t *fa);
        !           258: void EmitSkyPolys (msurface_t *fa);
        !           259: void R_DrawSkyChain (msurface_t *s);
        !           260: 
        !           261: //
        !           262: // gl_draw.c
        !           263: //
        !           264: int GL_LoadPicTexture (qpic_t *pic);
        !           265: void GL_Set2D (void);
        !           266: 
        !           267: //
        !           268: // gl_rmain.c
        !           269: //
        !           270: qboolean R_CullBox (vec3_t mins, vec3_t maxs);
        !           271: void R_RotateForEntity (entity_t *e);
        !           272: 
        !           273: //
        !           274: // gl_rlight.c
        !           275: //
        !           276: void R_MarkLights (dlight_t *light, int bit, mnode_t *node);
        !           277: void R_AnimateLight (void);
        !           278: void R_RenderDlights (void);
        !           279: int R_LightPoint (vec3_t p);
        !           280: 
        !           281: //
        !           282: // gl_refrag.c
        !           283: //
        !           284: void R_StoreEfrags (efrag_t **ppefrag);
        !           285: 
        !           286: //
        !           287: // gl_mesh.c
        !           288: //
        !           289: void GL_MakeAliasModelDisplayLists (model_t *m, aliashdr_t *hdr);
        !           290: 
        !           291: //
        !           292: // gl_rsurf.c
        !           293: //
        !           294: void R_DrawBrushModel (entity_t *e);
        !           295: void R_DrawWorld (void);
        !           296: void GL_BuildLightmaps (void);
        !           297: 
        !           298: //
        !           299: // gl_ngraph.c
        !           300: //
        !           301: void R_NetGraph (void);
        !           302: 

unix.superglobalmegacorp.com

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