25#include "../qcommon/q_shared.h"
26#include "../qcommon/qfiles.h"
27#include "../qcommon/qcommon.h"
29#include "../renderercommon/qgl.h"
30#include "../renderercommon/tr_common.h"
34#define GLE(ret, name, ...) extern "C" name##proc * qgl##name;
36#define GLE(ret, name, ...) extern name##proc * qgl##name;
40QGL_1_1_FIXED_FUNCTION_PROCS;
43QGL_DESKTOP_1_1_FIXED_FUNCTION_PROCS;
52#define GL_INDEX_TYPE GL_UNSIGNED_INT
53typedef unsigned int glIndex_t;
56#if id386 && !( (defined __linux__ || defined __FreeBSD__ ) && (defined __i386__ ) )
57long myftol(
float f );
59#define myftol(x) ((int)(x))
70#define MAX_SHADERS 16384
73#define MAX_STATES_PER_SHADER 32
74#define MAX_STATE_NAME 32
101 SF_NUM_SURFACE_TYPES,
138typedef float cube_entry_t[3][4];
146 void(*TessFunction) (
unsigned char* dstColors);
148 unsigned char level[4];
152 reallightinfo_t light[MAX_REAL_LIGHTS];
154 float cubemap[24][3][4];
164 float spot_radiusbydistance;
186 qboolean needDlights;
187 qboolean bLightGridCalculated;
189 float lodpercentage[2];
190 qboolean sphereCalculated;
199 vec3_t directedLight;
203 surfaceType_t surftype;
209 unsigned char shaderRGBA[4];
218 float modelMatrix[16];
276#define MAX_SHADER_STAGES 8
313 AGEN_ONE_MINUS_ENTITY,
315 AGEN_ONE_MINUS_VERTEX,
316 AGEN_LIGHTING_SPECULAR,
325 AGEN_ONE_MINUS_SKYALPHA,
329 AGEN_ONE_MINUS_DIST_FADE,
331 AGEN_ONE_MINUS_TIKI_DIST_FADE,
333 AGEN_ONE_MINUS_DOT_VIEW,
339 CGEN_IDENTITY_LIGHTING,
342 CGEN_ONE_MINUS_ENTITY,
345 CGEN_ONE_MINUS_VERTEX,
347 CGEN_MULTIPLY_BY_WAVEFORM,
349 CGEN_LIGHTING_SPHERICAL,
365 TCGEN_ENVIRONMENT_MAPPED,
367 TCGEN_ENVIRONMENT_MAPPED2,
368 TCGEN_SUN_REFLECTION,
388#define TR_MAX_TEXMODS 4
398 TMOD_ENTITY_TRANSLATE,
408#define MAX_SHADER_DEFORMS 3
410 deform_t deformation;
414 float deformationSpread;
452#define MAX_IMAGE_ANIMATIONS 64
453#define BUNDLE_ANIMATE_ONCE 1
456 image_t *image[MAX_IMAGE_ANIMATIONS];
457 int numImageAnimations;
458 float imageAnimationSpeed;
459 float imageAnimationPhase;
462 vec3_t tcGenVectors[2];
469 qboolean vertexLightmap;
474#define NUM_TEXTURE_BUNDLES 2
478 qboolean hasNormalMap;
508#define LIGHTMAP_2D -4
509#define LIGHTMAP_BY_VERTEX -3
510#define LIGHTMAP_WHITEIMAGE -2
511#define LIGHTMAP_NONE -1
527 image_t *outerbox[6], *innerbox[6];
532 SPRITE_PARALLEL_ORIENTED,
534 SPRITE_PARALLEL_UPRIGHT
544 float depthForOpaque;
549 char name[MAX_QPATH];
557 qboolean defaultShader;
563 qboolean explicitlyDefined;
568 qboolean entityMergable;
573 qboolean isPortalSky;
582 qboolean polygonOffset;
588 qboolean needsNormal;
596 int numUnfoggedPasses;
601 int stagesWithAlphaFog;
604 void (*optimalStageIteratorFunc)( void );
617 int shaderStates[MAX_STATES_PER_SHADER];
623 char shaderName[MAX_QPATH];
624 char name[MAX_STATE_NAME];
625 char stateShader[MAX_QPATH];
634 int x, y, width, height;
639 stereoFrame_t stereoFrame;
645 byte areamask[MAX_MAP_AREA_BYTES];
646 qboolean areamaskModified;
651 char text[MAX_RENDER_STRINGS][MAX_RENDER_STRING_LENGTH];
657 refSprite_t *sprites;
677 int numStaticModelData;
678 unsigned char *staticModelData;
685 qboolean skybox_farplane;
686 qboolean render_terrain;
696 char name[MAX_QPATH];
701 char name[MAX_QPATH];
708 int originalBrushNumber;
733 qboolean isPortalSky;
736 cplane_t portalPlane;
737 int viewportX, viewportY, viewportWidth, viewportHeight;
739 float projectionMatrix[16];
744 float farplane_distance;
746 float farplane_color[3];
747 qboolean farplane_cull;
748 qboolean renderTerrain;
762 surfaceType_t *surface;
765#define MAX_FACE_POINTS 64
767#define MAX_PATCH_SIZE 32
768#define MAX_GRID_SIZE 65
773 surfaceType_t surfaceType;
781 surfaceType_t surfaceType;
788 surfaceType_t surfaceType;
794 surfaceType_t surfaceType;
801 surfaceType_t surfaceType;
804 int dlightBits[SMP_FRAMES];
805 int dlightMap[SMP_FRAMES];
808 vec3_t meshBounds[2];
813 float lightmapOffset[2];
818 unsigned char *lmData;
830 float *widthLodError;
831 float *heightLodError;
839 surfaceType_t surfaceType;
843 int dlightBits[SMP_FRAMES];
844 int dlightMap[SMP_FRAMES];
845 float lightmapOffset[2];
853 vec3_t lmInverseVecs[2];
859 float points[1][VERTEXSIZE];
866 surfaceType_t surfaceType;
869 int dlightBits[SMP_FRAMES];
900typedef unsigned short terraInt;
908 unsigned int uiDistRecalc;
917 unsigned short iPt[3];
919 unsigned int uiDistRecalc;
921 varnodeUnpacked_t* varnode;
929 terraInt iRightChild;
936 surfaceType_t surfaceType;
953 srfTerrain_t drawinfo;
958 unsigned int uiDistRecalc;
961 vec2_t texCoord[2][2];
972 varnodeUnpacked_t varTree[2][63];
973 unsigned char heightmap[81];
979 surfaceType_t surfaceType;
984 qboolean useSpecialLighting;
985 qboolean bLightGridCalculated;
1001 float lodpercentage[2];
1004extern void (*rb_surfaceTable[SF_NUM_SURFACE_TYPES])(
void *);
1029 surfaceType_t *data;
1034#define CONTENTS_NODE -1
1052 msurface_t **firstmarksurface;
1053 int nummarksurfaces;
1055 int firstTerraPatch;
1056 int numTerraPatches;
1057 int firstStaticModel;
1058 int numStaticModels;
1059 void** pFirstMarkFragment;
1060 int iNumMarkFragment;
1065 msurface_t *firstSurface;
1067 void** pFirstMarkFragment;
1068 int iNumMarkFragment;
1070 qboolean hasLightmap;
1083 char name[MAX_QPATH];
1084 char baseName[MAX_QPATH];
1098 int numDecisionNodes;
1102 msurface_t *surfaces;
1104 int nummarksurfaces;
1105 msurface_t **marksurfaces;
1107 vec3_t lightGridMins;
1108 vec3_t lightGridSize;
1109 vec3_t lightGridOOSize;
1110 int lightGridBounds[3];
1111 unsigned short* lightGridOffsets;
1112 byte *lightGridData;
1113 byte lightGridPalette[768];
1115 int numTerraPatches;
1116 cTerraPatchUnpacked_t* terraPatches;
1117 cTerraPatchUnpacked_t* activeTerraPatches;
1119 int numVisTerraPatches;
1120 cTerraPatchUnpacked_t** visTerraPatches;
1122 int numStaticModelData;
1123 byte* staticModelData;
1125 int numStaticModels;
1126 cStaticModelUnpacked_t* staticModels;
1128 int numVisStaticModels;
1129 cStaticModelUnpacked_t** visStaticModels;
1149 char name[MAX_QPATH];
1153 qboolean serveronly;
1162#define MAX_MOD_KNOWN 1024
1164void R_ModelInit (
void);
1165model_t *R_GetModelByHandle( qhandle_t hModel );
1166int R_LerpTag(
orientation_t *tag, qhandle_t handle,
int startFrame,
int endFrame,
1167 float frac,
const char *tagName );
1169void R_Modellist_f (
void);
1174#define MAX_DRAWIMAGES 2048
1175#define MAX_LIGHTMAPS 256
1176#define MAX_SKINS 1024
1177#define MAX_SPHERE_LIGHTS 512
1179#define MAX_DRAWSURFS 0x10000
1180#define MAX_SPRITESURFS 0x8000
1181#define DRAWSURF_MASK (MAX_DRAWSURFS-1)
1183#define MAX_SPRITE_DIST 16384.0f
1184#define MAX_SPRITE_DIST_SQUARED (MAX_SPRITE_DIST * MAX_SPRITE_DIST)
1205#define QSORT_SHADERNUM_SHIFT 21
1206#define QSORT_ENTITYNUM_SHIFT 8
1207#define QSORT_FOGNUM_SHIFT 2
1208#define QSORT_REFENTITYNUM_SHIFT 7
1209#define QSORT_STATICMODEL_SHIFT 20
1211extern int gl_filter_min, gl_filter_max;
1217 int c_sphere_cull_patch_in, c_sphere_cull_patch_clip, c_sphere_cull_patch_out;
1218 int c_box_cull_patch_in, c_box_cull_patch_clip, c_box_cull_patch_out;
1219 int c_sphere_cull_md3_in, c_sphere_cull_md3_clip, c_sphere_cull_md3_out;
1220 int c_box_cull_md3_in, c_box_cull_md3_clip, c_box_cull_md3_out;
1223 int c_dlightSurfaces;
1224 int c_dlightSurfacesCulled;
1229#define FOG_TABLE_SIZE 256
1230#define FUNCTABLE_SIZE 1024
1231#define FUNCTABLE_SIZE2 10
1232#define FUNCTABLE_MASK (FUNCTABLE_SIZE-1)
1237 int currenttextures[2];
1239 qboolean finishCalled;
1244 long unsigned int glStateBits;
1245 long unsigned int externalSetState;
1251 int c_surfaces, c_shaders, c_vertexes, c_indexes, c_totalIndexes, c_characterlights;
1254 int c_dlightVertexes;
1255 int c_dlightIndexes;
1272 qboolean isHyperspace;
1274 qboolean skyRenderedThisView;
1276 unsigned short numSpheresUsed;
1280 cStaticModelUnpacked_t* currentStaticModel;
1284 qboolean vertexes2D;
1287 float shaderStartTime;
1299 qboolean registered;
1311 qboolean worldMapLoaded;
1314 const byte *externalVisData;
1316 image_t *defaultImage;
1317 image_t *scratchImage;
1319 image_t *dlightImage;
1320 image_t *flareImage;
1321 image_t *whiteImage;
1322 image_t *identityLightImage;
1323 image_t *dlightImages[15];
1325 shader_t *defaultShader;
1326 shader_t *shadowShader;
1327 shader_t *projectionShadowShader;
1329 shader_t *flareShader;
1330 shader_t *sunShader;
1333 image_t *lightmaps[MAX_LIGHTMAPS];
1337 int currentEntityNum;
1338 int currentSpriteNum;
1339 int shiftedEntityNum;
1340 int shiftedIsStatic;
1341 model_t *currentModel;
1345 float identityLight;
1346 int identityLightByte;
1348 int overbrightShift;
1349 float overbrightMult;
1350 int needsLightScale;
1355 qboolean skyRendered;
1356 qboolean portalRendered;
1362 vec3_t sunDirection;
1371 model_t models[MAX_MOD_KNOWN];
1375 image_t images[MAX_DRAWIMAGES];
1381 shader_t *shaders[MAX_SHADERS];
1382 shader_t *sortedShaders[MAX_SHADERS];
1385 skin_t *skins[MAX_SKINS];
1387 float sinTable[FUNCTABLE_SIZE];
1388 float squareTable[FUNCTABLE_SIZE];
1389 float triangleTable[FUNCTABLE_SIZE];
1390 float sawToothTable[FUNCTABLE_SIZE];
1391 float inverseSawToothTable[FUNCTABLE_SIZE];
1393 spherel_t sSunLight;
1394 spherel_t sLights[1532];
1397 qboolean shadersParsed;
1398 int frame_skel_index;
1399 int skel_index[1024];
1400 fontheader_t* pFontDebugStrings;
1413extern qboolean textureFilterAnisotropic;
1414extern int maxAnisotropy;
1415extern float displayAspect;
1416extern qboolean haveClampToEdge;
1419extern int r_sequencenumber;
1425extern cvar_t *r_flareSize;
1426extern cvar_t *r_flareFade;
1428extern cvar_t *r_ignore;
1429extern cvar_t *r_verbose;
1430extern cvar_t *r_ignoreFastPath;
1432extern cvar_t *r_znear;
1434extern cvar_t *r_stencilbits;
1435extern cvar_t *r_depthbits;
1436extern cvar_t *r_colorbits;
1437extern cvar_t *r_stereo;
1438extern cvar_t *r_textureDetails;
1439extern cvar_t *r_texturebits;
1445extern cvar_t *r_measureOverdraw;
1447extern cvar_t *r_lodscale;
1449extern cvar_t *r_primitives;
1454extern cvar_t *r_largemap;
1455extern cvar_t *r_inGameVideo;
1456extern cvar_t *r_fastsky;
1457extern cvar_t *r_fastdlights;
1458extern cvar_t *r_drawSun;
1459extern cvar_t *r_dlightBacks;
1461extern cvar_t *r_norefresh;
1462extern cvar_t *r_drawentities;
1463extern cvar_t *r_drawentitypoly;
1464extern cvar_t *r_drawstaticmodels;
1465extern cvar_t *r_drawstaticmodelpoly;
1466extern cvar_t *r_drawbrushes;
1467extern cvar_t *r_drawbrushmodels;
1468extern cvar_t *r_drawstaticdecals;
1469extern cvar_t *r_drawterrain;
1470extern cvar_t *r_drawsprites;
1471extern cvar_t *r_drawspherelights;
1472extern cvar_t *r_drawworld;
1473extern cvar_t *r_speeds;
1474extern cvar_t *r_detailTextures;
1475extern cvar_t *r_novis;
1476extern cvar_t *r_nocull;
1477extern cvar_t *r_showcull;
1478extern cvar_t *r_facePlaneCull;
1479extern cvar_t *r_nocurves;
1480extern cvar_t *r_showcluster;
1482extern cvar_t *r_mode;
1483extern cvar_t *r_maxmode;
1484extern cvar_t *r_vidmode1024;
1485extern cvar_t *r_vidmodemax;
1486extern cvar_t *r_fullscreen;
1487extern cvar_t *r_gamma;
1488extern cvar_t *r_displayRefresh;
1489extern cvar_t *r_ignorehwgamma;
1491extern cvar_t *r_allowExtensions;
1492extern cvar_t *r_ext_compressed_textures;
1493extern cvar_t *r_ext_gamma_control;
1494extern cvar_t *r_ext_texenv_op;
1495extern cvar_t *r_ext_multitexture;
1496extern cvar_t *r_ext_compiled_vertex_array;
1497extern cvar_t *r_ext_texture_env_add;
1498extern cvar_t *r_ext_texture_env_combine;
1499extern cvar_t *r_ext_aniso_filter;
1500extern cvar_t *r_ext_max_anisotropy;
1501extern cvar_t *r_forceClampToEdge;
1502extern cvar_t *r_geForce3WorkAround;
1503extern cvar_t *r_reset_tc_array;
1505extern cvar_t *r_nobind;
1506extern cvar_t *r_singleShader;
1507extern cvar_t *r_lerpmodels;
1508extern cvar_t *r_roundImagesDown;
1509extern cvar_t *r_colorMipLevels;
1510extern cvar_t *r_picmip;
1511extern cvar_t *r_finish;
1512extern cvar_t *r_drawBuffer;
1513extern cvar_t *r_glDriver;
1514extern cvar_t *r_swapInterval;
1515extern cvar_t *r_textureMode;
1516extern cvar_t *r_offsetFactor;
1517extern cvar_t *r_offsetUnits;
1519extern cvar_t *r_fullbright;
1520extern cvar_t *r_lightmap;
1521extern cvar_t *r_vertexLight;
1523extern cvar_t *r_logFile;
1524extern cvar_t *r_showtris;
1525extern cvar_t *r_showsky;
1526extern cvar_t *r_shownormals;
1527extern cvar_t *r_showhbox;
1528extern cvar_t *r_showstaticbboxes;
1529extern cvar_t *r_clear;
1531extern cvar_t *r_shadows;
1532extern cvar_t *r_entlight_scale;
1533extern cvar_t *r_entlight_errbound;
1534extern cvar_t *r_entlight_cubelevel;
1535extern cvar_t *r_entlight_cubefraction;
1536extern cvar_t *r_entlight_maxcalc;
1537extern cvar_t *r_flares;
1539extern cvar_t *r_intensity;
1541extern cvar_t *r_lockpvs;
1542extern cvar_t *r_noportals;
1543extern cvar_t *r_entlightmap;
1544extern cvar_t *r_fastentlight;
1545extern cvar_t *r_portalOnly;
1547extern cvar_t *r_subdivisions;
1548extern cvar_t *r_lodCurveError;
1549extern cvar_t *r_skipBackEnd;
1551extern cvar_t *r_anaglyphMode;
1553extern cvar_t *r_ignoreGLErrors;
1555extern cvar_t *r_overBrightBits;
1556extern cvar_t *r_mapOverBrightBits;
1558extern cvar_t *r_debugSurface;
1560extern cvar_t *r_showImages;
1561extern cvar_t *r_showlod;
1562extern cvar_t *r_showstaticlod;
1563extern cvar_t *r_debugSort;
1565extern cvar_t *r_printShaders;
1566extern cvar_t *r_saveFontData;
1568extern cvar_t* r_staticlod;
1569extern cvar_t* r_lodscale;
1570extern cvar_t* r_lodcap;
1571extern cvar_t* r_lodviewmodelcap;
1573extern cvar_t* r_uselod;
1574extern cvar_t* lod_LOD;
1575extern cvar_t* lod_minLOD;
1576extern cvar_t* lod_maxLOD;
1577extern cvar_t* lod_LOD_slider;
1578extern cvar_t* lod_curve_0_val;
1579extern cvar_t* lod_curve_1_val;
1580extern cvar_t* lod_curve_2_val;
1581extern cvar_t* lod_curve_3_val;
1582extern cvar_t* lod_curve_4_val;
1583extern cvar_t* lod_edit_0;
1584extern cvar_t* lod_edit_1;
1585extern cvar_t* lod_edit_2;
1586extern cvar_t* lod_edit_3;
1587extern cvar_t* lod_edit_4;
1588extern cvar_t* lod_curve_0_slider;
1589extern cvar_t* lod_curve_1_slider;
1590extern cvar_t* lod_curve_2_slider;
1591extern cvar_t* lod_curve_3_slider;
1592extern cvar_t* lod_curve_4_slider;
1593extern cvar_t* lod_pitch_val;
1594extern cvar_t* lod_zee_val;
1595extern cvar_t* lod_mesh;
1596extern cvar_t* lod_meshname;
1597extern cvar_t* lod_tikiname;
1598extern cvar_t* lod_metric;
1599extern cvar_t* lod_tris;
1600extern cvar_t* lod_position;
1601extern cvar_t* lod_save;
1602extern cvar_t* lod_tool;
1603extern cvar_t* sys_cpuid;
1604extern cvar_t* r_sse;
1605extern cvar_t* r_static_shaderdata0;
1606extern cvar_t* r_static_shaderdata1;
1607extern cvar_t* r_static_shaderdata2;
1608extern cvar_t* r_static_shaderdata3;
1609extern cvar_t* r_static_shadermultiplier0;
1610extern cvar_t* r_static_shadermultiplier1;
1611extern cvar_t* r_static_shadermultiplier2;
1612extern cvar_t* r_static_shadermultiplier3;
1614extern cvar_t* r_numdebuglines;
1616extern cvar_t* r_stipplelines;
1617extern cvar_t* r_light_lines;
1618extern cvar_t* r_light_sun_line;
1619extern cvar_t* r_light_int_scale;
1620extern cvar_t* r_light_nolight;
1621extern cvar_t* r_light_showgrid;
1622extern cvar_t* r_skyportal;
1623extern cvar_t* r_skyportal_origin;
1624extern cvar_t* r_farplane;
1625extern cvar_t* r_farplane_bias;
1626extern cvar_t* r_farplane_color;
1627extern cvar_t* r_farplane_nocull;
1628extern cvar_t* r_farplane_nofog;
1629extern cvar_t* r_skybox_farplane;
1630extern cvar_t* r_farclip;
1631extern cvar_t* r_lightcoronasize;
1632extern cvar_t* r_useglfog;
1633extern cvar_t* r_debuglines_depthmask;
1634extern cvar_t* r_smoothsmokelight;
1635extern cvar_t* r_showportal;
1636extern cvar_t* ter_minMarkRadius;
1637extern cvar_t* ter_fastMarks;
1638extern cvar_t* r_alpha_foliage1;
1639extern cvar_t* r_alpha_foliage2;
1640extern cvar_t* r_blendtrees;
1641extern cvar_t* r_blendbushes;
1642extern cvar_t* r_bumpmap;
1643extern cvar_t* r_loadjpg;
1644extern cvar_t* r_loadftx;
1646extern cvar_t* r_showSkeleton;
1647extern cvar_t* r_developer;
1648extern cvar_t* r_fps;
1652void R_NoiseInit(
void );
1656qboolean SurfIsOffscreen(
const srfSurfaceFace_t* surface, shader_t* shader,
int entityNum);
1661void R_AddRailSurfaces(
trRefEntity_t *e, qboolean isUnderwater );
1664void R_AddPolygonSurfaces(
void );
1666void R_DecomposeSort(
unsigned int sort,
int* entityNum, shader_t** shader,
int* dlightMap, qboolean* bStaticModel);
1668void R_AddDrawSurf(surfaceType_t* surface, shader_t* shader,
int dlightMap);
1674void R_LocalNormalToWorld (
const vec3_t local, vec3_t world);
1675void R_LocalPointToWorld (
const vec3_t local, vec3_t world);
1676int R_CullLocalBoxOffset(
const vec3_t offset, vec3_t bounds[2]);
1677int R_CullLocalBox (vec3_t bounds[2]);
1678int R_CullPointAndRadius( vec3_t origin,
float radius );
1679int R_CullLocalPointAndRadius( vec3_t origin,
float radius );
1680int R_DistanceCullLocalPointAndRadius(
float fDist,
const vec3_t pt,
float radius);
1681int R_DistanceCullPointAndRadius(
float fDist,
const vec3_t pt,
float radius);
1685void R_RotateForViewer(
void);
1686void R_SetupFrustum(
void);
1691void GL_SetFogColor(
const vec4_t fColor);
1692void GL_Bind( image_t *image );
1693void GL_SetDefaultState (
void);
1694void GL_SelectTexture(
int unit );
1695void GL_TextureMode(
const char *
string );
1696void GL_CheckErrors(
void );
1697void GL_State(
unsigned long stateVector );
1698void GL_TexEnv(
int env );
1699void GL_Cull(
int cullType );
1701#define GLS_SRCBLEND_ZERO 0x00000001
1702#define GLS_SRCBLEND_ONE 0x00000002
1703#define GLS_SRCBLEND_DST_COLOR 0x00000003
1704#define GLS_SRCBLEND_ONE_MINUS_DST_COLOR 0x00000004
1705#define GLS_SRCBLEND_SRC_ALPHA 0x00000005
1706#define GLS_SRCBLEND_ONE_MINUS_SRC_ALPHA 0x00000006
1707#define GLS_SRCBLEND_DST_ALPHA 0x00000007
1708#define GLS_SRCBLEND_ONE_MINUS_DST_ALPHA 0x00000008
1709#define GLS_SRCBLEND_ALPHA_SATURATE 0x00000009
1710#define GLS_SRCBLEND_BITS 0x0000000f
1712#define GLS_DSTBLEND_ZERO 0x00000010
1713#define GLS_DSTBLEND_ONE 0x00000020
1714#define GLS_DSTBLEND_SRC_COLOR 0x00000030
1715#define GLS_DSTBLEND_ONE_MINUS_SRC_COLOR 0x00000040
1716#define GLS_DSTBLEND_SRC_ALPHA 0x00000050
1717#define GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA 0x00000060
1718#define GLS_DSTBLEND_DST_ALPHA 0x00000070
1719#define GLS_DSTBLEND_ONE_MINUS_DST_ALPHA 0x00000080
1720#define GLS_DSTBLEND_BITS 0x000000f0
1722#define GLS_DEPTHMASK_TRUE 0x00000100
1723#define GLS_COLOR_MASK 0x00000200
1724#define GLS_POLYMODE_LINE 0x00000400
1725#define GLS_DEPTHTEST_DISABLE 0x00000800
1726#define GLS_DEPTHFUNC_EQUAL 0x00001000
1728#define GLS_CLAMP_EDGE 0x00002000
1729#define GLS_MULTITEXTURE 0x00004000
1730#define GLS_MULTITEXTURE_ENV 0x00008000
1731#define GLS_FOG 0x00010000
1733#define GLS_FOG_ENABLED 0x00020000
1734#define GLS_FOG_BLACK 0x00040000
1735#define GLS_FOG_WHITE 0x00080000
1736#define GLS_FOG_COLOR (GLS_FOG_BLACK | GLS_FOG_WHITE)
1737#define GLS_FOG_BITS (GLS_FOG_WHITE|GLS_FOG_BLACK|GLS_FOG_ENABLED)
1738#define GLS_COLOR_NOMASK 0x00100000
1740#define GLS_ATEST_GT_0 0x10000000
1741#define GLS_ATEST_LT_80 0x20000000
1742#define GLS_ATEST_GE_80 0x30000000
1743#define GLS_ATEST_LT_FOLIAGE1 0x40000000
1744#define GLS_ATEST_GE_FOLIAGE1 0x50000000
1745#define GLS_ATEST_LT_FOLIAGE2 0x60000000
1746#define GLS_ATEST_GE_FOLIAGE2 0x70000000
1747#define GLS_ATEST_BITS 0x70000000
1749#define GLS_DEFAULT GLS_DEPTHMASK_TRUE
1751void Draw_SetColor(
const vec4_t rgba);
1752void Draw_StretchPic(
float x,
float y,
float w,
float h,
float s1,
float t1,
float s2,
float t2, qhandle_t hShader);
1753void Draw_StretchPic2(
float x,
float y,
float w,
float h,
float s1,
float t1,
float s2,
float t2,
float sx,
float sy, qhandle_t hShader);
1754void Draw_TilePic(
float x,
float y,
float w,
float h, qhandle_t hShader);
1755void Draw_TilePicOffset(
float x,
float y,
float w,
float h, qhandle_t hShader,
int offsetX,
int offsetY);
1756void Draw_TrianglePic(
const vec2_t vPoints[3],
const vec2_t vTexCoords[3], qhandle_t hShader);
1757void DrawBox(
float x,
float y,
float w,
float h);
1758void AddBox(
float x,
float y,
float w,
float h);
1759void Set2DWindow(
int x,
int y,
int w,
int h,
float left,
float right,
float bottom,
float top,
float n,
float f);
1760void RE_Scissor(
int x,
int y,
int width,
int height);
1761void DrawLineLoop(
const vec2_t* points,
int count,
int stipple_factor,
int stipple_mask);
1762void RE_StretchRaw(
int x,
int y,
int w,
int h,
int cols,
int rows,
int components,
const byte* data);
1763void RE_UploadCinematic (
int w,
int h,
int cols,
int rows,
const byte *data,
int client, qboolean dirty);
1765void RE_BeginFrame( stereoFrame_t stereoFrame );
1766void RE_BeginRegistration(
glconfig_t *glconfig );
1767void RE_LoadWorldMap(
const char *mapname );
1768void RE_PrintBSPFileSizes(
void);
1769int RE_MapVersion(
void);
1770void RE_SetWorldVisData(
const byte *vis );
1771qhandle_t RE_RegisterModel(
const char *name );
1772qhandle_t RE_RegisterSkin(
const char *name );
1773void RE_Shutdown( qboolean destroyWindow );
1774void R_ClearWorld(
void);
1776qboolean R_GetEntityToken(
char *buffer,
int size );
1778model_t *R_AllocModel(
void );
1782image_t *R_FindImageFileOld(
const char* name, qboolean mipmap, qboolean allowPicmip, qboolean force32bit,
int glWrapClampModeX,
int glWrapClampModeY);
1783image_t *R_RefreshImageFileOld(
const char* name, qboolean mipmap, qboolean allowPicmip, qboolean force32bit,
int glWrapClampModeX,
int glWrapClampModeY);
1785image_t* R_CreateImageOld(
1791 int iMipmapsAvailable,
1792 qboolean allowPicmip,
1793 qboolean force32bit,
1796 int glWrapClampModeX,
1797 int glWrapClampModeY
1800qboolean R_ImageExists(
const char* name);
1801int R_CountTextureMemory();
1802qboolean R_LoadRawImage(
const char *name,
byte **pic,
int *width,
int *height);
1803void R_FreeRawImage(
byte *pic);
1805qboolean R_GetModeInfo(
int *width,
int *height,
float *windowAspect,
int mode );
1807void R_SetColorMappings(
void );
1808void R_GammaCorrect(
byte *buffer,
int bufSize );
1810void R_ImageList_f(
void );
1811void R_SkinList_f(
void );
1813const void *RB_TakeScreenshotCmd(
const void *data );
1814void R_ScreenShot_f(
void );
1816void R_InitImages(
void );
1817void R_FreeImage(image_t* image);
1818void R_DeleteTextures(
void );
1819void R_FreeUnusedImages(
void );
1820int R_SumOfUsedImages(
void );
1821skin_t *R_GetSkinByHandle( qhandle_t hSkin );
1823const void *RB_TakeVideoFrameCmd(
const void *data );
1828qhandle_t RE_RegisterShader(
const char *name );
1829qhandle_t RE_RegisterShaderNoMip(
const char *name );
1830qhandle_t RE_RefreshShaderNoMip(
const char* name);
1831qhandle_t RE_RegisterShaderFromImage(
const char *name,
int lightmapIndex, image_t *image, qboolean mipRawImage);
1833shader_t* R_FindShader(
const char* name,
int lightmapIndex, qboolean mipRawImage, qboolean picmip, qboolean wrapx, qboolean wrapy);
1834shader_t *R_GetShaderByHandle( qhandle_t hShader );
1835shader_t *R_GetShaderByState(
int index,
long *cycleTime );
1836void R_StartupShaders();
1837void R_ShutdownShaders();
1838void R_SetupShaders();
1839shader_t *R_FindShaderByName(
const char *name );
1840void R_ShaderList_f(
void );
1841void R_RemapShader(
const char *oldShader,
const char *newShader,
const char *timeOffset);
1851void GLimp_Init( qboolean fixedFunction );
1852void GLimp_Shutdown(
void );
1853void GLimp_EndFrame(
void );
1855qboolean GLimp_SpawnRenderThread(
void (*function)(
void ) );
1856void *GLimp_RendererSleep(
void );
1857void GLimp_FrontEndSleep(
void );
1858void GLimp_WakeRenderer(
void *data );
1860void GLimp_LogComment(
char *comment );
1864void GLimp_SetGamma(
unsigned char red[256],
1865 unsigned char green[256],
1866 unsigned char blue[256] );
1876typedef byte color4ub_t[4];
1880 color4ub_t colors[SHADER_MAX_VERTEXES];
1881 vec2_t texcoords[NUM_TEXTURE_BUNDLES][SHADER_MAX_VERTEXES];
1886 glIndex_t indexes[SHADER_MAX_INDEXES] QALIGN(16);
1887 vec4_t xyz[SHADER_MAX_VERTEXES] QALIGN(16);
1888 vec4_t normal[SHADER_MAX_VERTEXES] QALIGN(16);
1889 vec2_t texCoords[SHADER_MAX_VERTEXES][2] QALIGN(16);
1890 color4ub_t vertexColors[SHADER_MAX_VERTEXES] QALIGN(16);
1891 int vertexDlightBits[SHADER_MAX_VERTEXES] QALIGN(16);
1893 stageVars_t svars QALIGN(16);
1895 color4ub_t constantColor255[SHADER_MAX_VERTEXES] QALIGN(16);
1909 void (*currentStageIteratorFunc)( void );
1911 qboolean no_global_fog;
1912 qboolean vertexColorValid;
1915extern shaderCommands_t tess;
1917void RB_BeginSurface(shader_t *shader );
1918void RB_EndSurface(
void);
1919void RB_CheckOverflow(
int verts,
int indexes );
1920#define RB_CHECKOVERFLOW(v,i) if (tess.numVertexes + (v) >= SHADER_MAX_VERTEXES || tess.numIndexes + (i) >= SHADER_MAX_INDEXES ) {RB_CheckOverflow(v,i);}
1922void RB_StageIteratorGeneric(
void );
1923void RB_StageIteratorSky(
void );
1924void RB_StageIteratorVertexLitTextureUnfogged(
void );
1925void RB_StageIteratorLightmappedMultitextureUnfogged(
void );
1927void RB_AddQuadStamp( vec3_t origin, vec3_t left, vec3_t up,
byte *color );
1928void RB_AddQuadStampExt( vec3_t origin, vec3_t left, vec3_t up,
byte *color,
float s1,
float t1,
float s2,
float t2 );
1930void RB_ShowImages( qboolean quiet );
1945void R_GetInlineModelBounds(
int iIndex, vec3_t vMins, vec3_t vMaxs);
1946int R_SphereInLeafs(
const vec3_t p,
float r, mnode_t** nodes,
int nMaxNodes);
1947mnode_t* R_PointInLeaf(
const vec3_t p);
1950void R_AddWorldSurfaces(
void );
1951qboolean R_inPVS(
const vec3_t p1,
const vec3_t p2 );
1962void R_ClearFlares(
void );
1964void RB_AddFlare(
void *surface,
int fogNum, vec3_t point, vec3_t color, vec3_t normal );
1965void RB_AddDlightFlares(
void );
1966void RB_RenderFlares (
void);
1976void R_DlightBmodel(
bmodel_t *bmodel );
1977void R_GetLightingGridValue(
const vec3_t vPos, vec3_t vLight);
1978void R_GetLightingGridValueFast(
const vec3_t vPos, vec3_t vLight);
1979void R_GetLightingForDecal(vec3_t vLight,
const vec3_t vFacing,
const vec3_t vOrigin);
1980void R_GetLightingForSmoke(vec3_t vLight,
const vec3_t vOrigin);
1982void RB_SetupEntityGridLighting();
1984int R_RealDlightPatch(srfGridMesh_t* srf,
int dlightBit);
1987void R_TransformDlights(
int count, dlight_t *dl,
orientationr_t *ori );
1988void RB_Light_Real(
unsigned char* colors);
1989void RB_Sphere_BuildDLights();
1990void RB_Sphere_SetupEntity();
1991void RB_Grid_SetupEntity();
1992void RB_Grid_SetupStaticModel();
1993void RB_Light_Fullbright(
unsigned char* colors);
1994void R_Sphere_InitLights();
1995int R_GatherLightSources(
const vec3_t vPos, vec3_t* pvLightPos, vec3_t* pvLightIntensity,
int iMaxLights);
1996void R_ClearRealDlights();
1997void R_UploadDlights();
1999int R_LightForPoint(vec3_t point, vec3_t ambientLight, vec3_t directedLight, vec3_t lightDir);
2009void RB_ShadowTessEnd(
void );
2010void RB_ComputeShadowVolume();
2011void RB_ShadowFinish(
void );
2012void RB_ProjectionShadowDeform(
void );
2022void R_BuildCloudData( shaderCommands_t *shader );
2023void R_InitSkyTexCoords(
float cloudLayerHeight );
2024void R_DrawSkyBox( shaderCommands_t *shader );
2025void RB_DrawSun(
void );
2026void RB_ClipSkyPolygons( shaderCommands_t *shader );
2036#define PATCH_STITCHING
2038srfGridMesh_t *R_SubdividePatchToGrid(
int width,
int height,
float subdivide,
2039 drawVert_t points[MAX_PATCH_SIZE*MAX_PATCH_SIZE] );
2040srfGridMesh_t *R_GridInsertColumn( srfGridMesh_t *grid,
int column,
int row, vec3_t point,
float loderror );
2041srfGridMesh_t *R_GridInsertRow( srfGridMesh_t *grid,
int row,
int column, vec3_t point,
float loderror );
2042void R_FreeSurfaceGridMesh( srfGridMesh_t *grid );
2052int R_MarkFragments(
int numPoints,
const vec3_t *points,
const vec3_t projection,
2053 int maxPoints, vec3_t pointBuffer,
int maxFragments,
markFragment_t *fragmentBuffer,
float fRadiusSquared);
2055int R_MarkFragmentsForInlineModel(clipHandle_t bmodel,
const vec3_t vAngles,
const vec3_t vOrigin,
int numPoints,
2056 const vec3_t* points,
const vec3_t projection,
int maxPoints, vec3_t pointBuffer,
2057 int maxFragments,
markFragment_t* fragmentBuffer,
float fRadiusSquared);
2068void R_InitNextFrame(
void );
2070void RE_ClearScene(
void );
2071void RE_AddRefEntityToScene(
const refEntity_t *ent,
int parentEntityNumber);
2072void RE_AddRefSpriteToScene(
const refEntity_t* ent);
2073void RE_AddTerrainMarkToScene(
int iTerrainIndex, qhandle_t hShader,
int numVerts,
const polyVert_t* verts,
int renderfx);
2075qboolean RE_AddPolyToScene(qhandle_t hShader,
int numVerts,
const polyVert_t* verts,
int renderfx);
2076void RE_AddLightToScene(
const vec3_t org,
float intensity,
float r,
float g,
float b,
int type );
2077void RE_AddAdditiveLightToScene(
const vec3_t org,
float intensity,
float r,
float g,
float b );
2078void RE_RenderScene(
const refdef_t *fd );
2088void R_MakeAnimModel( model_t *model );
2098void R_ShutdownFont();
2099fontheader_t* R_LoadFont(
const char* name);
2100void R_LoadFontShader(fontheader_sgl_t* font);
2101void R_DrawString(fontheader_t* font,
const char* text,
float x,
float y,
int maxlen,
const float *pvVirtualScreen);
2102void R_DrawFloatingString(fontheader_t* font,
const char* text,
const vec3_t org,
const vec4_t color,
float scale,
int maxlen);
2103float R_GetFontHeight(
const fontheader_t* font);
2104float R_GetFontStringWidth(
const fontheader_t* font,
const char* s);
2114void R_UpdateGhostTextures();
2115void R_SetGhostImage(
const char* name, image_t* image);
2116void LoadGHOST(
const char* name,
byte** pic,
int* width,
int* height);
2125void R_LevelMarksLoad(
const char* szBSPName);
2126void R_LevelMarksInit();
2127void R_LevelMarksFree();
2128void R_UpdateLevelMarksSystem();
2129void R_AddPermanentMarkFragmentSurfaces(
void** pFirstMarkFragment,
int iNumMarkFragment);
2140void R_Sky_AddSurf(msurface_t* surf);
2150sprite_t* SPR_RegisterSprite(
const char* name);
2151void RB_DrawSprite(
const refSprite_t* spr);
2161void R_InitLensFlare();
2162void R_DrawLensFlares();
2171void RB_DrawSwipeSurface(surfaceType_t* pswipe);
2172void RE_SwipeBegin(
float thistime,
float life, qhandle_t shader);
2174void R_AddSwipeSurfaces();
2184void R_AddTerrainSurfaces();
2185void R_AddTerrainMarkSurfaces();
2186void R_InitTerrain();
2187void R_ShutdownTerrain();
2188void R_TerrainFree();
2189void R_TerrainPrepareFrame();
2191void R_SwapTerraPatch(cTerraPatch_t* pPatch);
2193void R_TerrainCrater_f(
void);
2205void R_InitStaticModels(
void);
2206void RE_FreeModels(
void);
2207qhandle_t RE_SpawnEffectModel(
const char* szModel, vec3_t vPos, vec3_t* axis);
2208qhandle_t RE_RegisterServerModel(
const char* name);
2209void RE_UnregisterServerModel(qhandle_t hModel);
2211qboolean RE_TIKI_IsOnGround(
refEntity_t* model,
int tagnum,
float threshold);
2212float R_ModelRadius(qhandle_t handle);
2213void R_ModelBounds(qhandle_t handle, vec3_t mins, vec3_t maxs);
2214dtiki_t* R_Model_GetHandle(qhandle_t handle);
2219void RE_SetFrameNumber(
int frameNumber);
2221void RB_SkelMesh(skelSurfaceGame_t* sf);
2222void RB_StaticMesh(staticSurface_t* staticSurf);
2223void RB_Static_BuildDLights();
2224void R_InfoStaticModels_f(
void);
2225void R_PrintInfoStaticModels();
2227void R_AddStaticModelSurfaces(
void);
2228void R_CountTikiLodTris(dtiki_t* tiki,
float lodpercentage,
int* render_tris,
int* total_tris);
2229float R_CalcLod(
const vec3_t origin,
float radius);
2230int GetLodCutoff(
struct skelHeaderGame_s* skelmodel,
float lod_val,
int renderfx);
2232void R_InfoWorldTris_f(
void);
2233void R_PrintInfoWorldtris(
void);
2234void R_DebugSkeleton(
void);
2236extern int g_nStaticSurfaces;
2237extern qboolean g_bInfostaticmodels;
2238extern qboolean g_bInfoworldtris;
2248void RB_StreamBegin(shader_t* shader);
2249void RB_StreamEnd(
void);
2250void RB_StreamBeginDrawSurf(
void);
2251void RB_StreamEndDrawSurf(
void);
2252static void addTriangle(
void);
2253void RB_Vertex3fv(vec3_t v);
2254void RB_Vertex3f(vec_t x, vec_t y, vec_t z);
2255void RB_Vertex2f(vec_t x, vec_t y);
2256void RB_Color4f(vec_t r, vec_t g, vec_t b, vec_t a);
2257void RB_Color3f(vec_t r, vec_t g, vec_t b);
2258void RB_Color3fv(vec3_t col);
2259void RB_Color4bv(
unsigned char* colors);
2260void RB_Texcoord2f(
float s,
float t);
2261void RB_Texcoord2fv(vec2_t st);
2262void R_DrawDebugNumber(
const vec3_t org,
float number,
float scale,
float r,
float g,
float b,
int precision);
2263void R_DebugRotatedBBox(
const vec3_t org,
const vec3_t ang,
const vec3_t mins,
const vec3_t maxs,
float r,
float g,
float b,
float alpha);
2264void R_DebugCircle(
const vec3_t org,
float radius,
float r,
float g,
float b,
float alpha, qboolean horizontal);
2265void R_DebugLine(
const vec3_t start,
const vec3_t end,
float r,
float g,
float b,
float alpha);
2266int RE_GetShaderWidth(qhandle_t hShader);
2267int RE_GetShaderHeight(qhandle_t hShader);
2268const char* RE_GetShaderName(qhandle_t hShader);
2269const char* RE_GetModelName(qhandle_t hModel);
2275void R_TransformModelToClip(
const vec3_t src,
const float *modelMatrix,
const float *projectionMatrix,
2276 vec4_t eye, vec4_t dst );
2277void R_TransformClipToWindow(
const vec4_t clip,
const viewParms_t *view, vec4_t normalized, vec4_t window );
2279void RB_DeformTessGeometry(
void );
2281void RB_CalcEnvironmentTexCoords(
float *dstTexCoords );
2282void RB_CalcEnvironmentTexCoords2(
float *dstTexCoords );
2283void RB_CalcSunReflectionTexCoords(
float *dstTexCoords );
2284void RB_CalcOffsetTexCoords(
const float* offset,
float* st);
2285void RB_CalcParallaxTexCoords(
const float* rate,
float* st);
2286void RB_TextureAxisFromPlane(
const vec3_t normal, vec3_t xv, vec3_t yv);
2287void RB_QuakeTextureVecs(
const vec3_t normal,
const vec2_t scale, vec3_t mappingVecs[2]);
2288void RB_CalcMacroTexCoords(
const float* rate,
float* st);
2289void RB_CalcScrollTexCoords(
const float scroll[2],
float *dstTexCoords );
2290void RB_CalcRotateTexCoords(
float degsPerSecond,
float degsPerSecondCoef,
float* st,
float start );
2291void RB_CalcScaleTexCoords(
const float scale[2],
float *dstTexCoords );
2292void RB_CalcTurbulentTexCoords(
const waveForm_t *wf,
float *dstTexCoords );
2293void RB_CalcTransformTexCoords(
const texModInfo_t *tmi,
float *dstTexCoords );
2294void RB_CalcWaveAlpha(
const waveForm_t *wf,
unsigned char *dstColors );
2295void RB_CalcWaveColor(
const waveForm_t* wf,
unsigned char* dstColors,
unsigned char* constantColor);
2296void RB_CalcAlphaFromEntity(
unsigned char *dstColors );
2297void RB_CalcAlphaFromOneMinusEntity(
unsigned char *dstColors );
2298void RB_CalcStretchTexCoords(
const waveForm_t *wf,
float *texCoords );
2299void RB_CalcColorFromEntity(
unsigned char *dstColors );
2300void RB_CalcColorFromOneMinusEntity(
unsigned char *dstColors );
2301void RB_CalcColorFromConstant(
unsigned char* dstColors,
unsigned char* constantColor);
2302void RB_CalcRGBFromDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2303void RB_CalcRGBFromOneMinusDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2304void RB_CalcAlphaFromConstant(
unsigned char* dstColors,
int constantAlpha);
2305void RB_CalcAlphaFromDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2306void RB_CalcAlphaFromHeightFade(
unsigned char* colors,
float alphaMin,
float alphaMax);
2307void RB_CalcAlphaFromOneMinusDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2308void RB_CalcAlphaFromTexCoords(
unsigned char* colors,
float alphaMin,
float alphaMax,
int alphaMinCap,
int alphaCap,
float sWeight,
float tWeight,
float* st);
2309void RB_CalcRGBFromTexCoords(
unsigned char* colors,
float alphaMin,
float alphaMax,
int alphaMinCap,
int alphaCap,
float sWeight,
float tWeight,
float* st);
2310void RB_CalcSpecularAlpha(
unsigned char* alphas,
float alphaMax, vec3_t lightOrigin);
2311void RB_CalcLightGridColor(
unsigned char* colors);
2312void RB_CalcAlphaFromDotView(
unsigned char* colors,
float alphaMin,
float alphaMax);
2313void RB_CalcAlphaFromOneMinusDotView(
unsigned char* colors,
float alphaMin,
float alphaMax);
2314void RB_CalcDiffuseColor(
unsigned char *colors );
2316void RB_CalcStretchTexCoords(
const waveForm_t* wf,
float* st);
2317void RB_CalcTransWaveTexCoords(
const waveForm_t* wf,
float* st);
2318void RB_CalcTransWaveTexCoordsT(
const waveForm_t* wf,
float* st);
2319void RB_CalcBulgeTexCoords(
const waveForm_t* wf,
float* st);
2329void RB_RenderThread(
void );
2330void RB_ExecuteRenderCommands(
const void *data );
2340#define MAX_RENDER_COMMANDS 0x40000
2345 vec3_t flaredirection;
2346 char szFlareName[64];
2350extern suninfo_t s_sun;
2353 byte cmds[MAX_RENDER_COMMANDS];
2397 drawSurf_t *drawSurfs;
2415 byte *captureBuffer;
2417 qboolean motionJpeg;
2450#define MAX_POLYS 4096
2451#define MAX_POLYVERTS 16384
2452#define MAX_TERMARKS 1024
2459 drawSurf_t drawSurfs[MAX_DRAWSURFS];
2460 drawSurf_t spriteSurfs[MAX_SPRITESURFS];
2461 dlight_t dlights[MAX_DLIGHTS];
2463 srfMarkFragment_t* terMarks;
2466 refSprite_t sprites[2048];
2467 cStaticModelUnpacked_t* staticModels;
2468 byte* staticModelData;
2472extern int max_polys;
2473extern int max_polyverts;
2474extern int max_termarks;
2480extern volatile qboolean renderThreadActive;
2483void *R_GetCommandBuffer(
int bytes );
2484void R_AddDrawSurfCmd( drawSurf_t *drawSurfs,
int numDrawSurfs );
2485void R_AddSpriteSurfCmd( drawSurf_t* drawSurfs,
int numDrawSurfs );
2486void RB_ExecuteRenderCommands(
const void *data );
2488void R_SavePerformanceCounters(
void);
2489void R_InitCommandBuffers(
void );
2490void R_ShutdownCommandBuffers(
void );
2492void R_SyncRenderThread(
void );
2494void R_AddDrawSurfCmd( drawSurf_t *drawSurfs,
int numDrawSurfs );
2496void RE_SetColor(
const float *rgba );
2497void RE_StretchPic (
float x,
float y,
float w,
float h,
2498 float s1,
float t1,
float s2,
float t2, qhandle_t hShader );
2499void RE_BeginFrame( stereoFrame_t stereoFrame );
2500void RE_EndFrame(
int *frontEndMsec,
int *backEndMsec );
2501void RE_SaveJPG(
char* filename,
int quality,
int image_width,
int image_height,
2502 unsigned char* image_buffer,
int padding);
2503size_t RE_SaveJPGToBuffer(
byte* buffer,
size_t bufSize,
int quality,
2504 int image_width,
int image_height,
byte* image_buffer,
int padding);
2505void RE_TakeVideoFrame(
int width,
int height,
2506 byte *captureBuffer,
byte *encodeBuffer, qboolean motionJpeg );
2508void SaveJPG(
char * filename,
int quality,
int image_width,
int image_height,
unsigned char *image_buffer);
2510void UI_LoadResource(
const char* name);
Definition tr_local.h:1250
Definition tr_local.h:2458
Definition tr_local.h:1266
Definition tr_local.h:1063
Definition tr_local.h:983
Definition navigation_bsp.h:148
Definition tr_local.h:952
Definition navigation_bsp.h:307
Definition tr_local.h:2428
Definition tr_local.h:2421
Definition tr_local.h:720
Definition tr_local.h:169
Definition tr_local.h:2362
Definition tr_local.h:760
Definition tr_local.h:2393
Definition tr_local.h:2379
Definition tr_local.h:542
Definition tr_local.h:707
Definition tr_local.h:1216
Definition tr_types.h:244
Definition tr_local.h:1236
Definition q_shared.h:1493
Definition tr_local.h:1035
Definition tr_local.h:1148
Definition tr_local.h:1023
Definition q_shared.h:1524
Definition tr_local.h:214
Definition tr_local.h:105
Definition tr_local.h:126
Definition tr_local.h:202
Definition tr_types.h:162
Definition tr_public.h:186
Definition tr_local.h:2352
Definition tr_local.h:2401
Definition tr_local.h:2357
Definition tr_local.h:1885
Definition tr_local.h:476
Definition tr_local.h:622
Definition tr_local.h:548
Definition tiki_shared.h:238
Definition tr_local.h:695
Definition tr_local.h:700
Definition tr_local.h:525
Definition tr_local.h:114
Definition tr_local.h:157
Definition tr_local.h:140
Definition tr_local.h:537
Definition tr_local.h:1073
Definition tr_local.h:787
Definition tr_local.h:793
Definition tr_local.h:800
Definition tr_local.h:780
Definition tr_local.h:772
Definition tr_local.h:978
Definition tr_local.h:838
Definition tr_local.h:935
Definition tr_local.h:865
Definition tr_local.h:1879
Definition tiki_shared.h:354
Definition tr_local.h:2384
Definition tr_local.h:2367
Definition tr_local.h:2342
Definition tr_local.h:2375
Definition tr_local.h:916
Definition navigation_bsp.h:280
Definition tr_local.h:902
Definition navigation_bsp.h:268
Definition tr_local.h:422
Definition tr_local.h:455
Definition tr_local.h:1298
Definition tr_local.h:181
Definition tr_local.h:633
Definition tr_local.h:2411
Definition tr_local.h:727
Definition tr_local.h:1082
Definition navigation_bsp.h:213