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;
728#define FARPLANE_CULL_NONE 0
730#define FARPLANE_CULL_STANDARD 1
732#define FARPLANE_CULL_PORTALSKY 2
740 qboolean isPortalSky;
743 cplane_t portalPlane;
744 int viewportX, viewportY, viewportWidth, viewportHeight;
746 float projectionMatrix[16];
751 float farplane_distance;
753 float farplane_color[3];
755 qboolean renderTerrain;
769 surfaceType_t *surface;
772#define MAX_FACE_POINTS 64
774#define MAX_PATCH_SIZE 32
775#define MAX_GRID_SIZE 65
780 surfaceType_t surfaceType;
788 surfaceType_t surfaceType;
795 surfaceType_t surfaceType;
801 surfaceType_t surfaceType;
808 surfaceType_t surfaceType;
811 int dlightBits[SMP_FRAMES];
812 int dlightMap[SMP_FRAMES];
815 vec3_t meshBounds[2];
820 float lightmapOffset[2];
825 unsigned char *lmData;
837 float *widthLodError;
838 float *heightLodError;
846 surfaceType_t surfaceType;
850 int dlightBits[SMP_FRAMES];
851 int dlightMap[SMP_FRAMES];
852 float lightmapOffset[2];
860 vec3_t lmInverseVecs[2];
866 float points[1][VERTEXSIZE];
873 surfaceType_t surfaceType;
876 int dlightBits[SMP_FRAMES];
907typedef unsigned short terraInt;
915 unsigned int uiDistRecalc;
924 unsigned short iPt[3];
926 unsigned int uiDistRecalc;
928 varnodeUnpacked_t* varnode;
936 terraInt iRightChild;
943 surfaceType_t surfaceType;
960 srfTerrain_t drawinfo;
965 unsigned int uiDistRecalc;
968 vec2_t texCoord[2][2];
979 varnodeUnpacked_t varTree[2][63];
980 unsigned char heightmap[81];
986 surfaceType_t surfaceType;
991 qboolean useSpecialLighting;
992 qboolean bLightGridCalculated;
1008 float lodpercentage[2];
1011extern void (*rb_surfaceTable[SF_NUM_SURFACE_TYPES])(
void *);
1036 surfaceType_t *data;
1041#define CONTENTS_NODE -1
1059 msurface_t **firstmarksurface;
1060 int nummarksurfaces;
1062 int firstTerraPatch;
1063 int numTerraPatches;
1064 int firstStaticModel;
1065 int numStaticModels;
1066 void** pFirstMarkFragment;
1067 int iNumMarkFragment;
1072 msurface_t *firstSurface;
1074 void** pFirstMarkFragment;
1075 int iNumMarkFragment;
1077 qboolean hasLightmap;
1090 char name[MAX_QPATH];
1091 char baseName[MAX_QPATH];
1105 int numDecisionNodes;
1109 msurface_t *surfaces;
1111 int nummarksurfaces;
1112 msurface_t **marksurfaces;
1114 vec3_t lightGridMins;
1115 vec3_t lightGridSize;
1116 vec3_t lightGridOOSize;
1117 int lightGridBounds[3];
1118 unsigned short* lightGridOffsets;
1119 byte *lightGridData;
1120 byte lightGridPalette[768];
1122 int numTerraPatches;
1123 cTerraPatchUnpacked_t* terraPatches;
1124 cTerraPatchUnpacked_t* activeTerraPatches;
1126 int numVisTerraPatches;
1127 cTerraPatchUnpacked_t** visTerraPatches;
1129 int numStaticModelData;
1130 byte* staticModelData;
1132 int numStaticModels;
1133 cStaticModelUnpacked_t* staticModels;
1135 int numVisStaticModels;
1136 cStaticModelUnpacked_t** visStaticModels;
1156 char name[MAX_QPATH];
1160 qboolean serveronly;
1169#define MAX_MOD_KNOWN 1024
1171void R_ModelInit (
void);
1172model_t *R_GetModelByHandle( qhandle_t hModel );
1173int R_LerpTag(
orientation_t *tag, qhandle_t handle,
int startFrame,
int endFrame,
1174 float frac,
const char *tagName );
1176void R_Modellist_f (
void);
1181#define MAX_DRAWIMAGES 2048
1182#define MAX_LIGHTMAPS 256
1183#define MAX_SKINS 1024
1184#define MAX_SPHERE_LIGHTS 512
1186#define MAX_DRAWSURFS 0x10000
1187#define MAX_SPRITESURFS 0x8000
1188#define DRAWSURF_MASK (MAX_DRAWSURFS-1)
1190#define MAX_SPRITE_DIST 16384.0f
1191#define MAX_SPRITE_DIST_SQUARED (MAX_SPRITE_DIST * MAX_SPRITE_DIST)
1212#define QSORT_SHADERNUM_SHIFT 21
1213#define QSORT_ENTITYNUM_SHIFT 8
1214#define QSORT_FOGNUM_SHIFT 2
1215#define QSORT_REFENTITYNUM_SHIFT 7
1216#define QSORT_STATICMODEL_SHIFT 20
1218extern int gl_filter_min, gl_filter_max;
1224 int c_sphere_cull_patch_in, c_sphere_cull_patch_clip, c_sphere_cull_patch_out;
1225 int c_box_cull_patch_in, c_box_cull_patch_clip, c_box_cull_patch_out;
1226 int c_sphere_cull_md3_in, c_sphere_cull_md3_clip, c_sphere_cull_md3_out;
1227 int c_box_cull_md3_in, c_box_cull_md3_clip, c_box_cull_md3_out;
1230 int c_dlightSurfaces;
1231 int c_dlightSurfacesCulled;
1236#define FOG_TABLE_SIZE 256
1237#define FUNCTABLE_SIZE 1024
1238#define FUNCTABLE_SIZE2 10
1239#define FUNCTABLE_MASK (FUNCTABLE_SIZE-1)
1244 int currenttextures[2];
1246 qboolean finishCalled;
1251 long unsigned int glStateBits;
1252 long unsigned int externalSetState;
1258 int c_surfaces, c_shaders, c_vertexes, c_indexes, c_totalIndexes, c_characterlights;
1261 int c_dlightVertexes;
1262 int c_dlightIndexes;
1279 qboolean isHyperspace;
1281 qboolean skyRenderedThisView;
1283 unsigned short numSpheresUsed;
1287 cStaticModelUnpacked_t* currentStaticModel;
1291 qboolean vertexes2D;
1294 float shaderStartTime;
1306 qboolean registered;
1318 qboolean worldMapLoaded;
1321 const byte *externalVisData;
1323 image_t *defaultImage;
1324 image_t *scratchImage;
1326 image_t *dlightImage;
1327 image_t *flareImage;
1328 image_t *whiteImage;
1329 image_t *identityLightImage;
1330 image_t *dlightImages[15];
1332 shader_t *defaultShader;
1333 shader_t *shadowShader;
1334 shader_t *projectionShadowShader;
1336 shader_t *flareShader;
1337 shader_t *sunShader;
1340 image_t *lightmaps[MAX_LIGHTMAPS];
1344 int currentEntityNum;
1345 int currentSpriteNum;
1346 int shiftedEntityNum;
1347 int shiftedIsStatic;
1348 model_t *currentModel;
1352 float identityLight;
1353 int identityLightByte;
1355 int overbrightShift;
1356 float overbrightMult;
1357 int needsLightScale;
1362 qboolean skyRendered;
1363 qboolean portalRendered;
1369 vec3_t sunDirection;
1378 model_t models[MAX_MOD_KNOWN];
1382 image_t images[MAX_DRAWIMAGES];
1388 shader_t *shaders[MAX_SHADERS];
1389 shader_t *sortedShaders[MAX_SHADERS];
1392 skin_t *skins[MAX_SKINS];
1394 float sinTable[FUNCTABLE_SIZE];
1395 float squareTable[FUNCTABLE_SIZE];
1396 float triangleTable[FUNCTABLE_SIZE];
1397 float sawToothTable[FUNCTABLE_SIZE];
1398 float inverseSawToothTable[FUNCTABLE_SIZE];
1400 spherel_t sSunLight;
1401 spherel_t sLights[1532];
1404 qboolean shadersParsed;
1405 int frame_skel_index;
1406 int skel_index[1024];
1407 fontheader_t* pFontDebugStrings;
1420extern qboolean textureFilterAnisotropic;
1421extern int maxAnisotropy;
1422extern float displayAspect;
1423extern qboolean haveClampToEdge;
1426extern int r_sequencenumber;
1432extern cvar_t *r_flareSize;
1433extern cvar_t *r_flareFade;
1435extern cvar_t *r_ignore;
1436extern cvar_t *r_verbose;
1437extern cvar_t *r_ignoreFastPath;
1439extern cvar_t *r_znear;
1441extern cvar_t *r_stencilbits;
1442extern cvar_t *r_depthbits;
1443extern cvar_t *r_colorbits;
1444extern cvar_t *r_stereo;
1445extern cvar_t *r_textureDetails;
1446extern cvar_t *r_texturebits;
1452extern cvar_t *r_measureOverdraw;
1454extern cvar_t *r_lodscale;
1456extern cvar_t *r_primitives;
1461extern cvar_t *r_largemap;
1462extern cvar_t *r_inGameVideo;
1463extern cvar_t *r_fastsky;
1464extern cvar_t *r_fastdlights;
1465extern cvar_t *r_drawSun;
1466extern cvar_t *r_dlightBacks;
1468extern cvar_t *r_norefresh;
1469extern cvar_t *r_drawentities;
1470extern cvar_t *r_drawentitypoly;
1471extern cvar_t *r_drawstaticmodels;
1472extern cvar_t *r_drawstaticmodelpoly;
1473extern cvar_t *r_drawbrushes;
1474extern cvar_t *r_drawbrushmodels;
1475extern cvar_t *r_drawstaticdecals;
1476extern cvar_t *r_drawterrain;
1477extern cvar_t *r_drawsprites;
1478extern cvar_t *r_drawspherelights;
1479extern cvar_t *r_drawworld;
1480extern cvar_t *r_speeds;
1481extern cvar_t *r_detailTextures;
1482extern cvar_t *r_novis;
1483extern cvar_t *r_nocull;
1484extern cvar_t *r_showcull;
1485extern cvar_t *r_facePlaneCull;
1486extern cvar_t *r_nocurves;
1487extern cvar_t *r_showcluster;
1489extern cvar_t *r_mode;
1490extern cvar_t *r_maxmode;
1491extern cvar_t *r_vidmode1024;
1492extern cvar_t *r_vidmodemax;
1493extern cvar_t *r_fullscreen;
1494extern cvar_t *r_gamma;
1495extern cvar_t *r_displayRefresh;
1496extern cvar_t *r_ignorehwgamma;
1498extern cvar_t *r_allowExtensions;
1499extern cvar_t *r_ext_compressed_textures;
1500extern cvar_t *r_ext_gamma_control;
1501extern cvar_t *r_ext_texenv_op;
1502extern cvar_t *r_ext_multitexture;
1503extern cvar_t *r_ext_compiled_vertex_array;
1504extern cvar_t *r_ext_texture_env_add;
1505extern cvar_t *r_ext_texture_env_combine;
1506extern cvar_t *r_ext_aniso_filter;
1507extern cvar_t *r_ext_max_anisotropy;
1508extern cvar_t *r_forceClampToEdge;
1509extern cvar_t *r_geForce3WorkAround;
1510extern cvar_t *r_reset_tc_array;
1512extern cvar_t *r_nobind;
1513extern cvar_t *r_singleShader;
1514extern cvar_t *r_lerpmodels;
1515extern cvar_t *r_roundImagesDown;
1516extern cvar_t *r_colorMipLevels;
1517extern cvar_t *r_picmip;
1518extern cvar_t *r_finish;
1519extern cvar_t *r_drawBuffer;
1520extern cvar_t *r_glDriver;
1521extern cvar_t *r_swapInterval;
1522extern cvar_t *r_textureMode;
1523extern cvar_t *r_offsetFactor;
1524extern cvar_t *r_offsetUnits;
1526extern cvar_t *r_fullbright;
1527extern cvar_t *r_lightmap;
1528extern cvar_t *r_vertexLight;
1530extern cvar_t *r_logFile;
1531extern cvar_t *r_showtris;
1532extern cvar_t *r_showsky;
1533extern cvar_t *r_shownormals;
1534extern cvar_t *r_showhbox;
1535extern cvar_t *r_showstaticbboxes;
1536extern cvar_t *r_clear;
1538extern cvar_t *r_shadows;
1539extern cvar_t *r_entlight_scale;
1540extern cvar_t *r_entlight_errbound;
1541extern cvar_t *r_entlight_cubelevel;
1542extern cvar_t *r_entlight_cubefraction;
1543extern cvar_t *r_entlight_maxcalc;
1544extern cvar_t *r_flares;
1546extern cvar_t *r_intensity;
1548extern cvar_t *r_lockpvs;
1549extern cvar_t *r_noportals;
1550extern cvar_t *r_entlightmap;
1551extern cvar_t *r_fastentlight;
1552extern cvar_t *r_portalOnly;
1554extern cvar_t *r_subdivisions;
1555extern cvar_t *r_lodCurveError;
1556extern cvar_t *r_skipBackEnd;
1558extern cvar_t *r_anaglyphMode;
1560extern cvar_t *r_ignoreGLErrors;
1562extern cvar_t *r_overBrightBits;
1563extern cvar_t *r_mapOverBrightBits;
1565extern cvar_t *r_debugSurface;
1567extern cvar_t *r_showImages;
1568extern cvar_t *r_showlod;
1569extern cvar_t *r_showstaticlod;
1570extern cvar_t *r_debugSort;
1572extern cvar_t *r_printShaders;
1573extern cvar_t *r_saveFontData;
1575extern cvar_t* r_staticlod;
1576extern cvar_t* r_lodscale;
1577extern cvar_t* r_lodcap;
1578extern cvar_t* r_lodviewmodelcap;
1580extern cvar_t* r_uselod;
1581extern cvar_t* lod_LOD;
1582extern cvar_t* lod_minLOD;
1583extern cvar_t* lod_maxLOD;
1584extern cvar_t* lod_LOD_slider;
1585extern cvar_t* lod_curve_0_val;
1586extern cvar_t* lod_curve_1_val;
1587extern cvar_t* lod_curve_2_val;
1588extern cvar_t* lod_curve_3_val;
1589extern cvar_t* lod_curve_4_val;
1590extern cvar_t* lod_edit_0;
1591extern cvar_t* lod_edit_1;
1592extern cvar_t* lod_edit_2;
1593extern cvar_t* lod_edit_3;
1594extern cvar_t* lod_edit_4;
1595extern cvar_t* lod_curve_0_slider;
1596extern cvar_t* lod_curve_1_slider;
1597extern cvar_t* lod_curve_2_slider;
1598extern cvar_t* lod_curve_3_slider;
1599extern cvar_t* lod_curve_4_slider;
1600extern cvar_t* lod_pitch_val;
1601extern cvar_t* lod_zee_val;
1602extern cvar_t* lod_mesh;
1603extern cvar_t* lod_meshname;
1604extern cvar_t* lod_tikiname;
1605extern cvar_t* lod_metric;
1606extern cvar_t* lod_tris;
1607extern cvar_t* lod_position;
1608extern cvar_t* lod_save;
1609extern cvar_t* lod_tool;
1610extern cvar_t* sys_cpuid;
1611extern cvar_t* r_sse;
1612extern cvar_t* r_static_shaderdata0;
1613extern cvar_t* r_static_shaderdata1;
1614extern cvar_t* r_static_shaderdata2;
1615extern cvar_t* r_static_shaderdata3;
1616extern cvar_t* r_static_shadermultiplier0;
1617extern cvar_t* r_static_shadermultiplier1;
1618extern cvar_t* r_static_shadermultiplier2;
1619extern cvar_t* r_static_shadermultiplier3;
1621extern cvar_t* r_numdebuglines;
1623extern cvar_t* r_stipplelines;
1624extern cvar_t* r_light_lines;
1625extern cvar_t* r_light_sun_line;
1626extern cvar_t* r_light_int_scale;
1627extern cvar_t* r_light_nolight;
1628extern cvar_t* r_light_showgrid;
1629extern cvar_t* r_skyportal;
1630extern cvar_t* r_skyportal_origin;
1631extern cvar_t* r_farplane;
1632extern cvar_t* r_farplane_bias;
1633extern cvar_t* r_farplane_color;
1634extern cvar_t* r_farplane_nocull;
1635extern cvar_t* r_farplane_nofog;
1636extern cvar_t* r_skybox_farplane;
1637extern cvar_t* r_farclip;
1638extern cvar_t* r_lightcoronasize;
1639extern cvar_t* r_useglfog;
1640extern cvar_t* r_debuglines_depthmask;
1641extern cvar_t* r_smoothsmokelight;
1642extern cvar_t* r_showportal;
1643extern cvar_t* ter_minMarkRadius;
1644extern cvar_t* ter_fastMarks;
1645extern cvar_t* r_alpha_foliage1;
1646extern cvar_t* r_alpha_foliage2;
1647extern cvar_t* r_blendtrees;
1648extern cvar_t* r_blendbushes;
1649extern cvar_t* r_bumpmap;
1650extern cvar_t* r_loadjpg;
1651extern cvar_t* r_loadftx;
1653extern cvar_t* r_showSkeleton;
1654extern cvar_t* r_developer;
1655extern cvar_t* r_fps;
1659void R_NoiseInit(
void );
1663qboolean SurfIsOffscreen(
const srfSurfaceFace_t* surface, shader_t* shader,
int entityNum);
1668void R_AddRailSurfaces(
trRefEntity_t *e, qboolean isUnderwater );
1671void R_AddPolygonSurfaces(
void );
1673void R_DecomposeSort(
unsigned int sort,
int* entityNum, shader_t** shader,
int* dlightMap, qboolean* bStaticModel);
1675void R_AddDrawSurf(surfaceType_t* surface, shader_t* shader,
int dlightMap);
1681void R_LocalNormalToWorld (
const vec3_t local, vec3_t world);
1682void R_LocalPointToWorld (
const vec3_t local, vec3_t world);
1683int R_CullLocalBoxOffset(
const vec3_t offset, vec3_t bounds[2]);
1684int R_CullLocalBox (vec3_t bounds[2]);
1685int R_CullPointAndRadius( vec3_t origin,
float radius );
1686int R_CullLocalPointAndRadius( vec3_t origin,
float radius );
1687int R_DistanceCullLocalPointAndRadius(
float fDist,
const vec3_t pt,
float radius);
1688int R_DistanceCullPointAndRadius(
float fDist,
const vec3_t pt,
float radius);
1692void R_RotateForViewer(
void);
1693void R_SetupFrustum(
void);
1698void GL_SetFogColor(
const vec4_t fColor);
1699void GL_Bind( image_t *image );
1700void GL_SetDefaultState (
void);
1701void GL_SelectTexture(
int unit );
1702void GL_TextureMode(
const char *
string );
1703void GL_CheckErrors(
void );
1704void GL_State(
unsigned long stateVector );
1705void GL_TexEnv(
int env );
1706void GL_Cull(
int cullType );
1708#define GLS_SRCBLEND_ZERO 0x00000001
1709#define GLS_SRCBLEND_ONE 0x00000002
1710#define GLS_SRCBLEND_DST_COLOR 0x00000003
1711#define GLS_SRCBLEND_ONE_MINUS_DST_COLOR 0x00000004
1712#define GLS_SRCBLEND_SRC_ALPHA 0x00000005
1713#define GLS_SRCBLEND_ONE_MINUS_SRC_ALPHA 0x00000006
1714#define GLS_SRCBLEND_DST_ALPHA 0x00000007
1715#define GLS_SRCBLEND_ONE_MINUS_DST_ALPHA 0x00000008
1716#define GLS_SRCBLEND_ALPHA_SATURATE 0x00000009
1717#define GLS_SRCBLEND_BITS 0x0000000f
1719#define GLS_DSTBLEND_ZERO 0x00000010
1720#define GLS_DSTBLEND_ONE 0x00000020
1721#define GLS_DSTBLEND_SRC_COLOR 0x00000030
1722#define GLS_DSTBLEND_ONE_MINUS_SRC_COLOR 0x00000040
1723#define GLS_DSTBLEND_SRC_ALPHA 0x00000050
1724#define GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA 0x00000060
1725#define GLS_DSTBLEND_DST_ALPHA 0x00000070
1726#define GLS_DSTBLEND_ONE_MINUS_DST_ALPHA 0x00000080
1727#define GLS_DSTBLEND_BITS 0x000000f0
1729#define GLS_DEPTHMASK_TRUE 0x00000100
1730#define GLS_COLOR_MASK 0x00000200
1731#define GLS_POLYMODE_LINE 0x00000400
1732#define GLS_DEPTHTEST_DISABLE 0x00000800
1733#define GLS_DEPTHFUNC_EQUAL 0x00001000
1735#define GLS_CLAMP_EDGE 0x00002000
1736#define GLS_MULTITEXTURE 0x00004000
1737#define GLS_MULTITEXTURE_ENV 0x00008000
1738#define GLS_FOG 0x00010000
1740#define GLS_FOG_ENABLED 0x00020000
1741#define GLS_FOG_BLACK 0x00040000
1742#define GLS_FOG_WHITE 0x00080000
1743#define GLS_FOG_COLOR (GLS_FOG_BLACK | GLS_FOG_WHITE)
1744#define GLS_FOG_BITS (GLS_FOG_WHITE|GLS_FOG_BLACK|GLS_FOG_ENABLED)
1745#define GLS_COLOR_NOMASK 0x00100000
1747#define GLS_ATEST_GT_0 0x10000000
1748#define GLS_ATEST_LT_80 0x20000000
1749#define GLS_ATEST_GE_80 0x30000000
1750#define GLS_ATEST_LT_FOLIAGE1 0x40000000
1751#define GLS_ATEST_GE_FOLIAGE1 0x50000000
1752#define GLS_ATEST_LT_FOLIAGE2 0x60000000
1753#define GLS_ATEST_GE_FOLIAGE2 0x70000000
1754#define GLS_ATEST_BITS 0x70000000
1756#define GLS_DEFAULT GLS_DEPTHMASK_TRUE
1758void Draw_SetColor(
const vec4_t rgba);
1759void Draw_StretchPic(
float x,
float y,
float w,
float h,
float s1,
float t1,
float s2,
float t2, qhandle_t hShader);
1760void 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);
1761void Draw_TilePic(
float x,
float y,
float w,
float h, qhandle_t hShader);
1762void Draw_TilePicOffset(
float x,
float y,
float w,
float h, qhandle_t hShader,
int offsetX,
int offsetY);
1763void Draw_TrianglePic(
const vec2_t vPoints[3],
const vec2_t vTexCoords[3], qhandle_t hShader);
1764void DrawBox(
float x,
float y,
float w,
float h);
1765void AddBox(
float x,
float y,
float w,
float h);
1766void Set2DWindow(
int x,
int y,
int w,
int h,
float left,
float right,
float bottom,
float top,
float n,
float f);
1767void RE_Scissor(
int x,
int y,
int width,
int height);
1768void DrawLineLoop(
const vec2_t* points,
int count,
int stipple_factor,
int stipple_mask);
1769void RE_StretchRaw(
int x,
int y,
int w,
int h,
int cols,
int rows,
int components,
const byte* data);
1770void RE_UploadCinematic (
int w,
int h,
int cols,
int rows,
const byte *data,
int client, qboolean dirty);
1772void RE_BeginFrame( stereoFrame_t stereoFrame );
1773void RE_BeginRegistration(
glconfig_t *glconfig );
1774void RE_LoadWorldMap(
const char *mapname );
1775void RE_PrintBSPFileSizes(
void);
1776int RE_MapVersion(
void);
1777void RE_SetWorldVisData(
const byte *vis );
1778qhandle_t RE_RegisterModel(
const char *name );
1779qhandle_t RE_RegisterSkin(
const char *name );
1780void RE_Shutdown( qboolean destroyWindow );
1781void R_ClearWorld(
void);
1783qboolean R_GetEntityToken(
char *buffer,
int size );
1785model_t *R_AllocModel(
void );
1789image_t *R_FindImageFileOld(
const char* name, qboolean mipmap, qboolean allowPicmip, qboolean force32bit,
int glWrapClampModeX,
int glWrapClampModeY);
1790image_t *R_RefreshImageFileOld(
const char* name, qboolean mipmap, qboolean allowPicmip, qboolean force32bit,
int glWrapClampModeX,
int glWrapClampModeY);
1792image_t* R_CreateImageOld(
1798 int iMipmapsAvailable,
1799 qboolean allowPicmip,
1800 qboolean force32bit,
1803 int glWrapClampModeX,
1804 int glWrapClampModeY
1807qboolean R_ImageExists(
const char* name);
1808int R_CountTextureMemory();
1809qboolean R_LoadRawImage(
const char *name,
byte **pic,
int *width,
int *height);
1810void R_FreeRawImage(
byte *pic);
1812qboolean R_GetModeInfo(
int *width,
int *height,
float *windowAspect,
int mode );
1814void R_SetColorMappings(
void );
1815void R_GammaCorrect(
byte *buffer,
int bufSize );
1817void R_ImageList_f(
void );
1818void R_SkinList_f(
void );
1820const void *RB_TakeScreenshotCmd(
const void *data );
1821void R_ScreenShot_f(
void );
1823void R_InitImages(
void );
1824void R_FreeImage(image_t* image);
1825void R_DeleteTextures(
void );
1826void R_FreeUnusedImages(
void );
1827int R_SumOfUsedImages(
void );
1828skin_t *R_GetSkinByHandle( qhandle_t hSkin );
1830const void *RB_TakeVideoFrameCmd(
const void *data );
1835qhandle_t RE_RegisterShader(
const char *name );
1836qhandle_t RE_RegisterShaderNoMip(
const char *name );
1837qhandle_t RE_RefreshShaderNoMip(
const char* name);
1838qhandle_t RE_RegisterShaderFromImage(
const char *name,
int lightmapIndex, image_t *image, qboolean mipRawImage);
1840shader_t* R_FindShader(
const char* name,
int lightmapIndex, qboolean mipRawImage, qboolean picmip, qboolean wrapx, qboolean wrapy);
1841shader_t *R_GetShaderByHandle( qhandle_t hShader );
1842shader_t *R_GetShaderByState(
int index,
long *cycleTime );
1843void R_StartupShaders();
1844void R_ShutdownShaders();
1845void R_SetupShaders();
1846shader_t *R_FindShaderByName(
const char *name );
1847void R_ShaderList_f(
void );
1848void R_RemapShader(
const char *oldShader,
const char *newShader,
const char *timeOffset);
1858void GLimp_Init( qboolean fixedFunction );
1859void GLimp_Shutdown(
void );
1860void GLimp_EndFrame(
void );
1862qboolean GLimp_SpawnRenderThread(
void (*function)(
void ) );
1863void *GLimp_RendererSleep(
void );
1864void GLimp_FrontEndSleep(
void );
1865void GLimp_WakeRenderer(
void *data );
1867void GLimp_LogComment(
char *comment );
1871void GLimp_SetGamma(
unsigned char red[256],
1872 unsigned char green[256],
1873 unsigned char blue[256] );
1883typedef byte color4ub_t[4];
1887 color4ub_t colors[SHADER_MAX_VERTEXES];
1888 vec2_t texcoords[NUM_TEXTURE_BUNDLES][SHADER_MAX_VERTEXES];
1893 glIndex_t indexes[SHADER_MAX_INDEXES] Q_ALIGN(16);
1894 vec4_t xyz[SHADER_MAX_VERTEXES] Q_ALIGN(16);
1895 vec4_t normal[SHADER_MAX_VERTEXES] Q_ALIGN(16);
1896 vec2_t texCoords[SHADER_MAX_VERTEXES][2] Q_ALIGN(16);
1897 color4ub_t vertexColors[SHADER_MAX_VERTEXES] Q_ALIGN(16);
1898 int vertexDlightBits[SHADER_MAX_VERTEXES] Q_ALIGN(16);
1900 stageVars_t svars Q_ALIGN(16);
1902 color4ub_t constantColor255[SHADER_MAX_VERTEXES] Q_ALIGN(16);
1916 void (*currentStageIteratorFunc)( void );
1918 qboolean no_global_fog;
1919 qboolean vertexColorValid;
1922extern shaderCommands_t tess;
1924void RB_BeginSurface(shader_t *shader );
1925void RB_EndSurface(
void);
1926void RB_CheckOverflow(
int verts,
int indexes );
1927#define RB_CHECKOVERFLOW(v,i) if (tess.numVertexes + (v) >= SHADER_MAX_VERTEXES || tess.numIndexes + (i) >= SHADER_MAX_INDEXES ) {RB_CheckOverflow(v,i);}
1929void RB_StageIteratorGeneric(
void );
1930void RB_StageIteratorSky(
void );
1931void RB_StageIteratorVertexLitTextureUnfogged(
void );
1932void RB_StageIteratorLightmappedMultitextureUnfogged(
void );
1934void RB_AddQuadStamp( vec3_t origin, vec3_t left, vec3_t up,
byte *color );
1935void RB_AddQuadStampExt( vec3_t origin, vec3_t left, vec3_t up,
byte *color,
float s1,
float t1,
float s2,
float t2 );
1937void RB_ShowImages( qboolean quiet );
1952void R_GetInlineModelBounds(
int iIndex, vec3_t vMins, vec3_t vMaxs);
1953int R_SphereInLeafs(
const vec3_t p,
float r, mnode_t** nodes,
int nMaxNodes);
1954mnode_t* R_PointInLeaf(
const vec3_t p);
1957void R_AddWorldSurfaces(
void );
1958qboolean R_inPVS(
const vec3_t p1,
const vec3_t p2 );
1969void R_ClearFlares(
void );
1971void RB_AddFlare(
void *surface,
int fogNum, vec3_t point, vec3_t color, vec3_t normal );
1972void RB_AddDlightFlares(
void );
1973void RB_RenderFlares (
void);
1983void R_DlightBmodel(
bmodel_t *bmodel );
1984void R_GetLightingGridValue(
const vec3_t vPos, vec3_t vLight);
1985void R_GetLightingGridValueFast(
const vec3_t vPos, vec3_t vLight);
1986void R_GetLightingForDecal(vec3_t vLight,
const vec3_t vFacing,
const vec3_t vOrigin);
1987void R_GetLightingForSmoke(vec3_t vLight,
const vec3_t vOrigin);
1989void RB_SetupEntityGridLighting();
1991int R_RealDlightPatch(srfGridMesh_t* srf,
int dlightBit);
1994void R_TransformDlights(
int count, dlight_t *dl,
orientationr_t *ori );
1995void RB_Light_Real(
unsigned char* colors);
1996void RB_Sphere_BuildDLights();
1997void RB_Sphere_SetupEntity();
1998void RB_Grid_SetupEntity();
1999void RB_Grid_SetupStaticModel();
2000void RB_Light_Fullbright(
unsigned char* colors);
2001void R_Sphere_InitLights();
2002int R_GatherLightSources(
const vec3_t vPos, vec3_t* pvLightPos, vec3_t* pvLightIntensity,
int iMaxLights);
2003void R_ClearRealDlights();
2004void R_UploadDlights();
2006int R_LightForPoint(vec3_t point, vec3_t ambientLight, vec3_t directedLight, vec3_t lightDir);
2016void RB_ShadowTessEnd(
void );
2017void RB_ComputeShadowVolume();
2018void RB_ShadowFinish(
void );
2019void RB_ProjectionShadowDeform(
void );
2029void R_BuildCloudData( shaderCommands_t *shader );
2030void R_InitSkyTexCoords(
float cloudLayerHeight );
2031void R_DrawSkyBox( shaderCommands_t *shader );
2032void RB_DrawSun(
void );
2033void RB_ClipSkyPolygons( shaderCommands_t *shader );
2043#define PATCH_STITCHING
2045srfGridMesh_t *R_SubdividePatchToGrid(
int width,
int height,
float subdivide,
2046 drawVert_t points[MAX_PATCH_SIZE*MAX_PATCH_SIZE] );
2047srfGridMesh_t *R_GridInsertColumn( srfGridMesh_t *grid,
int column,
int row, vec3_t point,
float loderror );
2048srfGridMesh_t *R_GridInsertRow( srfGridMesh_t *grid,
int row,
int column, vec3_t point,
float loderror );
2049void R_FreeSurfaceGridMesh( srfGridMesh_t *grid );
2059int R_MarkFragments(
int numPoints,
const vec3_t *points,
const vec3_t projection,
2060 int maxPoints, vec3_t pointBuffer,
int maxFragments,
markFragment_t *fragmentBuffer,
float fRadiusSquared);
2062int R_MarkFragmentsForInlineModel(clipHandle_t bmodel,
const vec3_t vAngles,
const vec3_t vOrigin,
int numPoints,
2063 const vec3_t* points,
const vec3_t projection,
int maxPoints, vec3_t pointBuffer,
2064 int maxFragments,
markFragment_t* fragmentBuffer,
float fRadiusSquared);
2075void R_InitNextFrame(
void );
2077void RE_ClearScene(
void );
2078void RE_AddRefEntityToScene(
const refEntity_t *ent,
int parentEntityNumber);
2079void RE_AddRefSpriteToScene(
const refEntity_t* ent);
2080void RE_AddTerrainMarkToScene(
int iTerrainIndex, qhandle_t hShader,
int numVerts,
const polyVert_t* verts,
int renderfx);
2082qboolean RE_AddPolyToScene(qhandle_t hShader,
int numVerts,
const polyVert_t* verts,
int renderfx);
2083void RE_AddLightToScene(
const vec3_t org,
float intensity,
float r,
float g,
float b,
int type );
2084void RE_AddAdditiveLightToScene(
const vec3_t org,
float intensity,
float r,
float g,
float b );
2085void RE_RenderScene(
const refdef_t *fd );
2095void R_MakeAnimModel( model_t *model );
2105void R_ShutdownFont();
2106fontheader_t* R_LoadFont(
const char* name);
2107void R_LoadFontShader(fontheader_sgl_t* font);
2108void R_DrawString(fontheader_t* font,
const char* text,
float x,
float y,
int maxlen,
const float *pvVirtualScreen);
2109void R_DrawFloatingString(fontheader_t* font,
const char* text,
const vec3_t org,
const vec4_t color,
float scale,
int maxlen);
2110float R_GetFontHeight(
const fontheader_t* font);
2111float R_GetFontStringWidth(
const fontheader_t* font,
const char* s);
2121void R_UpdateGhostTextures();
2122void R_SetGhostImage(
const char* name, image_t* image);
2123void LoadGHOST(
const char* name,
byte** pic,
int* width,
int* height);
2132void R_LevelMarksLoad(
const char* szBSPName);
2133void R_LevelMarksInit();
2134void R_LevelMarksFree();
2135void R_UpdateLevelMarksSystem();
2136void R_AddPermanentMarkFragmentSurfaces(
void** pFirstMarkFragment,
int iNumMarkFragment);
2147void R_Sky_AddSurf(msurface_t* surf);
2157sprite_t* SPR_RegisterSprite(
const char* name);
2158void RB_DrawSprite(
const refSprite_t* spr);
2168void R_InitLensFlare();
2169void R_DrawLensFlares();
2178void RB_DrawSwipeSurface(surfaceType_t* pswipe);
2179void RE_SwipeBegin(
float thistime,
float life, qhandle_t shader);
2181void R_AddSwipeSurfaces();
2191void R_AddTerrainSurfaces();
2192void R_AddTerrainMarkSurfaces();
2193void R_InitTerrain();
2194void R_ShutdownTerrain();
2195void R_TerrainFree();
2196void R_TerrainPrepareFrame();
2198void R_SwapTerraPatch(cTerraPatch_t* pPatch);
2200void R_TerrainCrater_f(
void);
2212void R_InitStaticModels(
void);
2213void RE_FreeModels(
void);
2214qhandle_t RE_SpawnEffectModel(
const char* szModel, vec3_t vPos, vec3_t* axis);
2215qhandle_t RE_RegisterServerModel(
const char* name);
2216void RE_UnregisterServerModel(qhandle_t hModel);
2218qboolean RE_TIKI_IsOnGround(
refEntity_t* model,
int tagnum,
float threshold);
2219float R_ModelRadius(qhandle_t handle);
2220void R_ModelBounds(qhandle_t handle, vec3_t mins, vec3_t maxs);
2221dtiki_t* R_Model_GetHandle(qhandle_t handle);
2226void RE_SetFrameNumber(
int frameNumber);
2228void RB_SkelMesh(skelSurfaceGame_t* sf);
2229void RB_StaticMesh(staticSurface_t* staticSurf);
2230void RB_Static_BuildDLights();
2231void R_InfoStaticModels_f(
void);
2232void R_PrintInfoStaticModels();
2234void R_AddStaticModelSurfaces(
void);
2235void R_CountTikiLodTris(dtiki_t* tiki,
float lodpercentage,
int* render_tris,
int* total_tris);
2236float R_CalcLod(
const vec3_t origin,
float radius);
2237int GetLodCutoff(
struct skelHeaderGame_s* skelmodel,
float lod_val,
int renderfx);
2239void R_InfoWorldTris_f(
void);
2240void R_PrintInfoWorldtris(
void);
2241void R_DebugSkeleton(
void);
2243extern int g_nStaticSurfaces;
2244extern qboolean g_bInfostaticmodels;
2245extern qboolean g_bInfoworldtris;
2255void RB_StreamBegin(shader_t* shader);
2256void RB_StreamEnd(
void);
2257void RB_StreamBeginDrawSurf(
void);
2258void RB_StreamEndDrawSurf(
void);
2259static void addTriangle(
void);
2260void RB_Vertex3fv(vec3_t v);
2261void RB_Vertex3f(vec_t x, vec_t y, vec_t z);
2262void RB_Vertex2f(vec_t x, vec_t y);
2263void RB_Color4f(vec_t r, vec_t g, vec_t b, vec_t a);
2264void RB_Color3f(vec_t r, vec_t g, vec_t b);
2265void RB_Color3fv(vec3_t col);
2266void RB_Color4bv(
unsigned char* colors);
2267void RB_Texcoord2f(
float s,
float t);
2268void RB_Texcoord2fv(vec2_t st);
2269void R_DrawDebugNumber(
const vec3_t org,
float number,
float scale,
float r,
float g,
float b,
int precision);
2270void 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);
2271void R_DebugCircle(
const vec3_t org,
float radius,
float r,
float g,
float b,
float alpha, qboolean horizontal);
2272void R_DebugLine(
const vec3_t start,
const vec3_t end,
float r,
float g,
float b,
float alpha);
2273int RE_GetShaderWidth(qhandle_t hShader);
2274int RE_GetShaderHeight(qhandle_t hShader);
2275const char* RE_GetShaderName(qhandle_t hShader);
2276const char* RE_GetModelName(qhandle_t hModel);
2282void R_TransformModelToClip(
const vec3_t src,
const float *modelMatrix,
const float *projectionMatrix,
2283 vec4_t eye, vec4_t dst );
2284void R_TransformClipToWindow(
const vec4_t clip,
const viewParms_t *view, vec4_t normalized, vec4_t window );
2286void RB_DeformTessGeometry(
void );
2288void RB_CalcEnvironmentTexCoords(
float *dstTexCoords );
2289void RB_CalcEnvironmentTexCoords2(
float *dstTexCoords );
2290void RB_CalcSunReflectionTexCoords(
float *dstTexCoords );
2291void RB_CalcOffsetTexCoords(
const float* offset,
float* st);
2292void RB_CalcParallaxTexCoords(
const float* rate,
float* st);
2293void RB_TextureAxisFromPlane(
const vec3_t normal, vec3_t xv, vec3_t yv);
2294void RB_QuakeTextureVecs(
const vec3_t normal,
const vec2_t scale, vec3_t mappingVecs[2]);
2295void RB_CalcMacroTexCoords(
const float* rate,
float* st);
2296void RB_CalcScrollTexCoords(
const float scroll[2],
float *dstTexCoords );
2297void RB_CalcRotateTexCoords(
float degsPerSecond,
float degsPerSecondCoef,
float* st,
float start );
2298void RB_CalcScaleTexCoords(
const float scale[2],
float *dstTexCoords );
2299void RB_CalcTurbulentTexCoords(
const waveForm_t *wf,
float *dstTexCoords );
2300void RB_CalcTransformTexCoords(
const texModInfo_t *tmi,
float *dstTexCoords );
2301void RB_CalcWaveAlpha(
const waveForm_t *wf,
unsigned char *dstColors );
2302void RB_CalcWaveColor(
const waveForm_t* wf,
unsigned char* dstColors,
unsigned char* constantColor);
2303void RB_CalcAlphaFromEntity(
unsigned char *dstColors );
2304void RB_CalcAlphaFromOneMinusEntity(
unsigned char *dstColors );
2305void RB_CalcStretchTexCoords(
const waveForm_t *wf,
float *texCoords );
2306void RB_CalcColorFromEntity(
unsigned char *dstColors );
2307void RB_CalcColorFromOneMinusEntity(
unsigned char *dstColors );
2308void RB_CalcColorFromConstant(
unsigned char* dstColors,
unsigned char* constantColor);
2309void RB_CalcRGBFromDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2310void RB_CalcRGBFromOneMinusDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2311void RB_CalcAlphaFromConstant(
unsigned char* dstColors,
int constantAlpha);
2312void RB_CalcAlphaFromDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2313void RB_CalcAlphaFromHeightFade(
unsigned char* colors,
float alphaMin,
float alphaMax);
2314void RB_CalcAlphaFromOneMinusDot(
unsigned char* colors,
float alphaMin,
float alphaMax);
2315void RB_CalcAlphaFromTexCoords(
unsigned char* colors,
float alphaMin,
float alphaMax,
int alphaMinCap,
int alphaCap,
float sWeight,
float tWeight,
float* st);
2316void RB_CalcRGBFromTexCoords(
unsigned char* colors,
float alphaMin,
float alphaMax,
int alphaMinCap,
int alphaCap,
float sWeight,
float tWeight,
float* st);
2317void RB_CalcSpecularAlpha(
unsigned char* alphas,
float alphaMax, vec3_t lightOrigin);
2318void RB_CalcLightGridColor(
unsigned char* colors);
2319void RB_CalcAlphaFromDotView(
unsigned char* colors,
float alphaMin,
float alphaMax);
2320void RB_CalcAlphaFromOneMinusDotView(
unsigned char* colors,
float alphaMin,
float alphaMax);
2321void RB_CalcDiffuseColor(
unsigned char *colors );
2323void RB_CalcStretchTexCoords(
const waveForm_t* wf,
float* st);
2324void RB_CalcTransWaveTexCoords(
const waveForm_t* wf,
float* st);
2325void RB_CalcTransWaveTexCoordsT(
const waveForm_t* wf,
float* st);
2326void RB_CalcBulgeTexCoords(
const waveForm_t* wf,
float* st);
2336void RB_RenderThread(
void );
2337void RB_ExecuteRenderCommands(
const void *data );
2347#define MAX_RENDER_COMMANDS 0x40000
2352 vec3_t flaredirection;
2353 char szFlareName[64];
2357extern suninfo_t s_sun;
2360 byte cmds[MAX_RENDER_COMMANDS];
2404 drawSurf_t *drawSurfs;
2422 byte *captureBuffer;
2424 qboolean motionJpeg;
2457#define MAX_POLYS 4096
2458#define MAX_POLYVERTS 16384
2459#define MAX_TERMARKS 1024
2466 drawSurf_t drawSurfs[MAX_DRAWSURFS];
2467 drawSurf_t spriteSurfs[MAX_SPRITESURFS];
2468 dlight_t dlights[MAX_DLIGHTS];
2470 srfMarkFragment_t* terMarks;
2473 refSprite_t sprites[2048];
2474 cStaticModelUnpacked_t* staticModels;
2475 byte* staticModelData;
2479extern int max_polys;
2480extern int max_polyverts;
2481extern int max_termarks;
2487extern volatile qboolean renderThreadActive;
2490void *R_GetCommandBuffer(
int bytes );
2491void R_AddDrawSurfCmd( drawSurf_t *drawSurfs,
int numDrawSurfs );
2492void R_AddSpriteSurfCmd( drawSurf_t* drawSurfs,
int numDrawSurfs );
2493void RB_ExecuteRenderCommands(
const void *data );
2495void R_SavePerformanceCounters(
void);
2496void R_InitCommandBuffers(
void );
2497void R_ShutdownCommandBuffers(
void );
2499void R_SyncRenderThread(
void );
2501void R_AddDrawSurfCmd( drawSurf_t *drawSurfs,
int numDrawSurfs );
2503void RE_SetColor(
const float *rgba );
2504void RE_StretchPic (
float x,
float y,
float w,
float h,
2505 float s1,
float t1,
float s2,
float t2, qhandle_t hShader );
2506void RE_BeginFrame( stereoFrame_t stereoFrame );
2507void RE_EndFrame(
int *frontEndMsec,
int *backEndMsec );
2508void RE_SaveJPG(
char* filename,
int quality,
int image_width,
int image_height,
2509 unsigned char* image_buffer,
int padding);
2510size_t RE_SaveJPGToBuffer(
byte* buffer,
size_t bufSize,
int quality,
2511 int image_width,
int image_height,
byte* image_buffer,
int padding);
2512void RE_TakeVideoFrame(
int width,
int height,
2513 byte *captureBuffer,
byte *encodeBuffer, qboolean motionJpeg );
2515void SaveJPG(
char * filename,
int quality,
int image_width,
int image_height,
unsigned char *image_buffer);
2517void UI_LoadResource(
const char* name);
Definition tr_local.h:1257
Definition tr_local.h:2465
Definition tr_local.h:1273
Definition tr_local.h:1070
Definition tr_local.h:990
Definition navigation_bsp.h:149
Definition tr_local.h:959
Definition navigation_bsp.h:308
Definition tr_local.h:2435
Definition tr_local.h:2428
Definition tr_local.h:720
Definition tr_local.h:169
Definition tr_local.h:2369
Definition tr_local.h:767
Definition tr_local.h:2400
Definition tr_local.h:2386
Definition tr_local.h:542
Definition tr_local.h:707
Definition tr_local.h:1223
Definition tr_types.h:244
Definition tr_local.h:1243
Definition q_shared.h:1493
Definition tr_local.h:1042
Definition tr_local.h:1155
Definition tr_local.h:1030
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:2359
Definition tr_local.h:2408
Definition tr_local.h:2364
Definition tr_local.h:1892
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:1080
Definition tr_local.h:794
Definition tr_local.h:800
Definition tr_local.h:807
Definition tr_local.h:787
Definition tr_local.h:779
Definition tr_local.h:985
Definition tr_local.h:845
Definition tr_local.h:942
Definition tr_local.h:872
Definition tr_local.h:1886
Definition tiki_shared.h:354
Definition tr_local.h:2391
Definition tr_local.h:2374
Definition tr_local.h:2349
Definition tr_local.h:2382
Definition tr_local.h:923
Definition navigation_bsp.h:281
Definition tr_local.h:909
Definition navigation_bsp.h:269
Definition tr_local.h:422
Definition tr_local.h:455
Definition tr_local.h:1305
Definition tr_local.h:181
Definition tr_local.h:633
Definition tr_local.h:2418
Definition tr_local.h:734
Definition tr_local.h:1089
Definition navigation_bsp.h:214