mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 21:57:57 +03:00
561 lines
17 KiB
C
561 lines
17 KiB
C
#ifndef _renderer_api_h
|
|
#define _renderer_api_h
|
|
|
|
#include <stdio.h>
|
|
|
|
#ifdef _CGAME_DLL
|
|
#include "cgamex86.h"
|
|
#else
|
|
#include "gamex86.h"
|
|
#endif
|
|
|
|
#ifdef WANT_OPENGL
|
|
#include "ogl\opengl_api.h"
|
|
#endif
|
|
|
|
#define QUAT_EPSILON 0.00001
|
|
|
|
#ifndef M_PI
|
|
#define M_PI 3.1415926535897932384626433832795f
|
|
#endif
|
|
|
|
#define random() ((rand () & 0x7fff) / ((float)0x7fff))
|
|
#define crandom() (2.0 * (random() - 0.5))
|
|
|
|
#define DEG2RAD( a ) ( ( (a) * M_PI ) / 180.0F )
|
|
#define RAD2DEG( a ) ( ( (a) * 180.0f ) / M_PI )
|
|
|
|
#define ANGLE2SHORT(x) ((int)((x)*65536/360) & 65535)
|
|
#define SHORT2ANGLE(x) ((x)*(360.0/65536))
|
|
|
|
#define SUBMAX( a, b ) ( a > b ? ( a - b ) : ( b - a ) )
|
|
#define SUBMIN( a, b ) ( a < b ? ( a - b ) : ( b - a ) )
|
|
|
|
/*#define DotProduct(x,y) ((x)[0]*(y)[0]+(x)[1]*(y)[1]+(x)[2]*(y)[2])
|
|
#define VectorSubtract(a,b,c) ((c)[0]=(a)[0]-(b)[0],(c)[1]=(a)[1]-(b)[1],(c)[2]=(a)[2]-(b)[2])
|
|
#define VectorAdd(a,b,c) ((c)[0]=(a)[0]+(b)[0],(c)[1]=(a)[1]+(b)[1],(c)[2]=(a)[2]+(b)[2])
|
|
#define VectorCopy(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2])
|
|
#define VectorScale(v, s, o) ((o)[0]=(v)[0]*(s),(o)[1]=(v)[1]*(s),(o)[2]=(v)[2]*(s))
|
|
#define VectorMA(v, s, b, o) ((o)[0]=(v)[0]+(b)[0]*(s),(o)[1]=(v)[1]+(b)[1]*(s),(o)[2]=(v)[2]+(b)[2]*(s))
|
|
#define VectorCompare(a,b) (((a)[0]==(b)[0])&&((a)[1]==(b)[1])&&((a)[2]==(b)[2]))
|
|
|
|
#define VectorClear(a) ((a)[0]=(a)[1]=(a)[2]=0)
|
|
#define VectorNegate(a,b) ((b)[0]=-(a)[0],(b)[1]=-(a)[1],(b)[2]=-(a)[2])
|
|
#define VectorSet(v, x, y, z) ((v)[0]=(x), (v)[1]=(y), (v)[2]=(z))
|
|
#define Vector4Copy(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2],(b)[3]=(a)[3])*/
|
|
|
|
#define VectorInverse(a) ((a)[0]=-(a)[0],(a)[1]=-(a)[1],(a)[2]=-(a)[2])
|
|
|
|
#define PITCH 0
|
|
#define YAW 1
|
|
#define ROLL 2
|
|
|
|
#define RED 0
|
|
#define GREEN 1
|
|
#define BLUE 2
|
|
|
|
#define MAX_EFFECTS 10
|
|
#define MAX_EFFECTS_LENGTH 64
|
|
|
|
/* Animation flags */
|
|
#define ANIM_RANDOM 0x01
|
|
#define ANIM_DELTADRIVEN 0x02
|
|
#define ANIM_DONTREPEATE 0x03
|
|
#define ANIM_AUTOSTEPS_DOG 0x04
|
|
#define ANIM_DEFAULTANGLES 0x08
|
|
#define ANIM_NOTIMECHECK 0x10
|
|
#define ANIM_AUTOSTEPS_WALK 0x14
|
|
#define ANIM_AUTOSTEPS_RUN 0x1C
|
|
|
|
#define GLS_SRCBLEND_ZERO 0x00000001
|
|
#define GLS_SRCBLEND_ONE 0x00000002
|
|
#define GLS_SRCBLEND_DST_COLOR 0x00000003
|
|
#define GLS_SRCBLEND_ONE_MINUS_DST_COLOR 0x00000004
|
|
#define GLS_SRCBLEND_SRC_ALPHA 0x00000005
|
|
#define GLS_SRCBLEND_ONE_MINUS_SRC_ALPHA 0x00000006
|
|
#define GLS_SRCBLEND_DST_ALPHA 0x00000007
|
|
#define GLS_SRCBLEND_ONE_MINUS_DST_ALPHA 0x00000008
|
|
#define GLS_SRCBLEND_ALPHA_SATURATE 0x00000009
|
|
#define GLS_SRCBLEND_BITS 0x0000000f
|
|
|
|
#define GLS_DSTBLEND_ZERO 0x00000010
|
|
#define GLS_DSTBLEND_ONE 0x00000020
|
|
#define GLS_DSTBLEND_SRC_COLOR 0x00000030
|
|
#define GLS_DSTBLEND_ONE_MINUS_SRC_COLOR 0x00000040
|
|
#define GLS_DSTBLEND_SRC_ALPHA 0x00000050
|
|
#define GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA 0x00000060
|
|
#define GLS_DSTBLEND_DST_ALPHA 0x00000070
|
|
#define GLS_DSTBLEND_ONE_MINUS_DST_ALPHA 0x00000080
|
|
#define GLS_DSTBLEND_BITS 0x000000f0
|
|
|
|
#define GLS_DEPTHMASK_TRUE 0x00000100
|
|
|
|
#define GLS_NODEPTH 0x00000200
|
|
#define GLS_DEPTH 0x00000300
|
|
|
|
#define GLS_POLYMODE_LINE 0x00001000
|
|
|
|
#define GLS_DEPTHTEST_DISABLE 0x00010000
|
|
#define GLS_DEPTHFUNC_EQUAL 0x00020000
|
|
|
|
#define GLS_ATEST_GT_0 0x10000000
|
|
#define GLS_ATEST_LT_80 0x20000000
|
|
#define GLS_ATEST_GE_80 0x40000000
|
|
#define GLS_ATEST_BITS 0x70000000
|
|
|
|
#define GLS_DEFAULT GLS_DEPTHMASK_TRUE
|
|
|
|
#define ELM_MODELS 0x004b56b3
|
|
#define ELM_WALLS 0x004b598e
|
|
|
|
#define ELM_FLAT 0x004b3993
|
|
#define ELM_ENTS 0x004b56b3
|
|
#define ELM_WORLD 0x004b598e
|
|
|
|
static const char *anim_cmd[] =
|
|
{
|
|
"weight",
|
|
"deltadriven",
|
|
"default_angles",
|
|
"notimecheck",
|
|
"crossblend",
|
|
"dontrepeate",
|
|
"random",
|
|
"autosteps_run",
|
|
"autosteps_walk",
|
|
"autosteps_dog",
|
|
};
|
|
|
|
static const char *effectName[MAX_EFFECTS] =
|
|
{
|
|
"bloom",
|
|
"blur",
|
|
"darkwhite",
|
|
"dof",
|
|
"invert",
|
|
"scenecolor",
|
|
"thermal",
|
|
"wallhack",
|
|
"wave",
|
|
};
|
|
|
|
qboolean __inline R_IsEffect(const char * fxName)
|
|
{
|
|
int i;
|
|
|
|
/* Check if the name is a valid effect name */
|
|
for(i=0;i<MAX_EFFECTS;i++)
|
|
{
|
|
if( _stricmp( fxName, effectName[ i ] ) == 0 )
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
typedef struct vvar_s
|
|
{
|
|
char *name;
|
|
int integer;
|
|
int integer_target;
|
|
float value;
|
|
float value_current;
|
|
float value_start;
|
|
vec3_t vector;
|
|
vec3_t vector_current;
|
|
vec3_t vector_start;
|
|
qboolean bProcessed;
|
|
} vvar_t;
|
|
|
|
typedef struct {
|
|
vvar_t *vvar;
|
|
const char *name;
|
|
const char *value;
|
|
vec4_t vector;
|
|
} regVis_t;
|
|
|
|
typedef struct effect_s
|
|
{
|
|
char effectName[MAX_EFFECTS_LENGTH];
|
|
float intensity;
|
|
vec3_t color;
|
|
vec3_t t_color;
|
|
vec3_t o_color;
|
|
float fadetime;
|
|
qboolean bRemove;
|
|
float param[2];
|
|
} effect_t;
|
|
|
|
typedef struct tikiFrame_s
|
|
{
|
|
vec3_t bounds[ 2 ];
|
|
vec3_t scale;
|
|
vec3_t offset;
|
|
vec3_t delta;
|
|
float radius;
|
|
float frameTime;
|
|
|
|
} tikiFrame_t;
|
|
|
|
typedef struct refDef_s
|
|
{
|
|
int x;
|
|
int y;
|
|
int width;
|
|
int height;
|
|
float fovX;
|
|
float fovY;
|
|
vec3_t viewOrg;
|
|
vec3_t viewAxis[3];
|
|
int time;
|
|
int rdFlags;
|
|
unsigned char areaMask[32];
|
|
float farplaneDistance;
|
|
float farplaneColor[3];
|
|
qboolean farplaneCull;
|
|
qboolean skyPortal;
|
|
float skyAlpha;
|
|
vec3_t skyOrigin;
|
|
vec3_t skyAxis[3];
|
|
|
|
} refDef_t;
|
|
|
|
typedef struct animation_s
|
|
{
|
|
unsigned char un1[0x184]; // 0x000
|
|
|
|
float weight; // 0x184
|
|
float crossblend; // 0x188
|
|
int animFlags; // 0x18C
|
|
|
|
} animation_t;
|
|
|
|
typedef struct bmodel_s
|
|
{
|
|
char un1[ 40 ];
|
|
void *lightmap;
|
|
bool haslightmap;
|
|
} bmodel_t;
|
|
|
|
typedef struct model_s
|
|
{
|
|
char un1[ 140 ];
|
|
bmodel_t *bmodel;
|
|
} model_t;
|
|
|
|
typedef struct debugLine_s
|
|
{
|
|
vec3_t start;
|
|
vec3_t end;
|
|
float color[ 3 ];
|
|
float alpha;
|
|
float width;
|
|
short unsigned int factor;
|
|
short unsigned int pattern;
|
|
|
|
} debugLine_t;
|
|
|
|
typedef struct debugString_s
|
|
{
|
|
char text[ MAX_QPATH ];
|
|
vec3_t pos;
|
|
float scale;
|
|
vec4_t color;
|
|
|
|
} debugString_t;
|
|
|
|
typedef struct polyVert_s
|
|
{
|
|
float xyz[ 3 ];
|
|
float st[ 2 ];
|
|
unsigned char modulate[ 4 ];
|
|
|
|
} polyVert_t;
|
|
|
|
typedef enum dlightType_e
|
|
{
|
|
LENSFLARE = 1,
|
|
VIEWLENSFLARE,
|
|
ADDITIVE = 4
|
|
|
|
} dlightType_t;
|
|
|
|
typedef enum stereoFrame_e
|
|
{
|
|
STEREO_CENTER,
|
|
STEREO_LEFT,
|
|
STEREO_RIGHT
|
|
|
|
} stereoFrame_t;
|
|
|
|
typedef struct letterLoc_s
|
|
{
|
|
vec2_t pos;
|
|
vec2_t size;
|
|
|
|
} letterLoc_t;
|
|
|
|
typedef struct fontHeader_s
|
|
{
|
|
int indirection[ 256 ];
|
|
letterLoc_t locations[ 256 ];
|
|
char name[ MAX_QPATH ];
|
|
float height;
|
|
float aspectRatio;
|
|
void *shader;
|
|
int trHandle;
|
|
|
|
} fontHeader_t;
|
|
|
|
typedef struct media_s
|
|
{
|
|
qhandle_t backTileShader;
|
|
qhandle_t lagometerShader;
|
|
qhandle_t shadowMarkShader;
|
|
qhandle_t footShadowMarkShader;
|
|
qhandle_t wakeMarkShader;
|
|
qhandle_t pausedShader;
|
|
qhandle_t levelExitShader;
|
|
qhandle_t zoomOverlayShader;
|
|
qhandle_t kar98TopOverlayShader;
|
|
qhandle_t kar98BottomOverlayShader;
|
|
qhandle_t binocularsOverlayShader;
|
|
fontHeader_t *hudDrawFont;
|
|
fontHeader_t *attackerFont;
|
|
fontHeader_t *objectiveFont;
|
|
qhandle_t objectivesBackShader;
|
|
qhandle_t checkedBoxShader;
|
|
qhandle_t uncheckedBoxShader;
|
|
|
|
} media_t;
|
|
|
|
typedef void( *GL_State_f )( int state );
|
|
extern GL_State_f GL_State;
|
|
|
|
typedef void( *GL_Bind_f )( void * image );
|
|
extern GL_Bind_f GL_Bind;
|
|
|
|
typedef void( *GL_Setup_f )( void );
|
|
extern GL_Setup_f GL_Setup;
|
|
|
|
typedef struct refImport_s
|
|
{
|
|
void ( *Printf )( int type, const char *format, ... );
|
|
void ( *Error )( errorParm_t errorCode, const char *format, ... );
|
|
int ( *Milliseconds )( );
|
|
char * ( *LV_ConvertString )( const char *string );
|
|
void ( *Hunk_Clear )( );
|
|
void * ( *Hunk_Alloc )( int size );
|
|
void * ( *Hunk_AllocateTempMemory )( int size );
|
|
void ( *Hunk_FreeTempMemory )( void *buffer );
|
|
void * ( *Malloc )( size_t size );
|
|
void ( *Free )( void *ptr );
|
|
void ( *Clear )( );
|
|
cvar_t * ( *Cvar_Get )( char *varName, char *varValue, int varFlags );
|
|
void ( *Cvar_Set )( char *varName, char *varValue );
|
|
void ( *Cvar_SetDefault )( cvar_t *var, char *varValue );
|
|
void ( *Cmd_AddCommand )( char *cmdName, xcommand_t cmdFunction );
|
|
void ( *Cmd_RemoveCommand )( char *cmdName );
|
|
int ( *Argc )( );
|
|
char * ( *Argv )( int arg );
|
|
void ( *Cmd_ExecuteText )( cbufExec_t execWhen, char *text );
|
|
void ( *CM_DrawDebugSurface )( void ( *drawPoly )( ) );
|
|
int ( *FS_OpenFile )( char *qpath, fsMode_t mode );
|
|
int ( *FS_Read )( void *buffer, int len, fileHandle_t fileHandle );
|
|
void ( *FS_CloseFile )( fileHandle_t fileHandle );
|
|
int ( *FS_Seek )( fileHandle_t fileHandle, long int offset, fsOrigin_t origin );
|
|
int ( *FS_FileIsInPAK )( char *fileName, int *checksum );
|
|
int ( *FS_ReadFile )( char *qpath, void **buffer );
|
|
int ( *FS_ReadFileEx )( char *qpath, void **buffer, qboolean quiet );
|
|
void ( *FS_FreeFile )( void *buffer );
|
|
const char ** ( *FS_ListFiles )( const char *qpath, const char *extension, qboolean wantSubs, int *numFiles );
|
|
void ( *FS_FreeFileList )( char **list );
|
|
int ( *FS_WriteFile )( char *qpath, void *buffer, int size );
|
|
qboolean ( *FS_FileExists )( char *file );
|
|
void ( *CM_BoxTrace )( trace_t *results, vec3_t start, vec3_t end, vec3_t mins, vec3_t maxs, int model, int brushMask, int cylinder );
|
|
int ( *CM_TerrainSquareType )( int terrainPatch, int i, int j );
|
|
char * ( *CM_EntityString )( );
|
|
char * ( *CM_MapTime )( );
|
|
int ( *CG_PermanentMark )( vec3_t origin, vec3_t dir, float orientation, float sScale, float tScale, float red, float green, float blue, float alpha, qboolean doLighting, float sCenter, float tCenter, markFragment_t *markFragments, void *polyVerts );
|
|
int ( *CG_PermanentTreadMarkDecal )( treadMark_t *treadMark, qboolean startSegment, qboolean doLighting, markFragment_t *markFragments, void *polyVerts );
|
|
int ( *CG_PermanentUpdateTreadMark )( treadMark_t *treadMark, float alpha, float minSegment, float maxSegment, float maxOffset, float texScale );
|
|
void ( *CG_ProcessInitCommands )( dtiki_t *tiki, refEntity_t *ent );
|
|
void ( *CG_EndTiki )( dtiki_t *tiki );
|
|
void ( *SetPerformanceCounters )( int totalTris, int totalVerts, int totalTexels, int worldTris, int worldVerts, int characterLights );
|
|
|
|
debugLine_t **debugLines;
|
|
int *numDebugLines;
|
|
debugString_t **debugStrings;
|
|
int *numDebugStrings;
|
|
|
|
orientation_t ( *TIKI_OrientationInternal )( dtiki_t *tiki, int entNum, int tagNum, float scale );
|
|
qboolean ( *TIKI_IsOnGroundInternal )( dtiki_t *tiki, int entNum, int tagNum, float thresHold );
|
|
void ( *TIKI_SetPoseInternal )( void *skeletor, frameInfo_t *frameInfo, int *boneTag, vec4_t boneQuat[4], float actionWeight );
|
|
void * ( *TIKI_Alloc )( int size );
|
|
float ( *GetRadiusInternal )( dtiki_t *tiki, int entNum, float scale );
|
|
float ( *GetCentroidRadiusInternal )( dtiki_t *tiki, int entNum, float scale, vec3_t centroid );
|
|
void ( *GetFrameInternal )( dtiki_t *tiki, int entNum, skelAnimFrame_t *newFrame );
|
|
|
|
} refImport_t;
|
|
|
|
typedef struct refExport_s
|
|
{
|
|
void ( *Shutdown )( );
|
|
void ( *BeginRegistration )( glconfig_t *glConfigOut );
|
|
qhandle_t ( *RegisterModel )( const char *name );
|
|
qhandle_t ( *SpawnEffectModel )( const char *name, vec3_t pos, vec3_t axis[3] );
|
|
qhandle_t ( *RegisterServerModel )( const char *name );
|
|
void ( *UnregisterServerModel )( qhandle_t model );
|
|
qhandle_t ( *RegisterShader )( const char *name );
|
|
qhandle_t ( *RegisterShaderNoMip )( const char *name );
|
|
qhandle_t ( *RefreshShaderNoMip )( const char *name );
|
|
void ( *EndRegistration )( );
|
|
void ( *FreeModels )( );
|
|
void ( *SetWorldVisData )( unsigned char *vis );
|
|
void ( *LoadWorld )( char *name );
|
|
void ( *PrintBSPFileSizes )( );
|
|
int ( *MapVersion )( );
|
|
void ( *ClearScene )( );
|
|
void ( *AddRefEntityToScene )( refEntity_t *ent, int parentEntityNumber );
|
|
void ( *AddRefSpriteToScene )( refEntity_t *ent );
|
|
qboolean ( *AddPolyToScene )( qhandle_t hShader, int numVerts, polyVert_t *verts, int renderFx );
|
|
void ( *AddTerrainMarkToScene )( int terrainIndex, qhandle_t hShader, int numVerts, polyVert_t *verts, int renderfx );
|
|
void ( *AddLightToScene )( vec3_t org, float intensity, float r, float g, float b, dlightType_t type );
|
|
void ( *RenderScene )( refDef_t *fd );
|
|
refEntity_t * ( *GetRenderEntity )( int entityNumber );
|
|
void ( *SavePerformanceCounters )( );
|
|
void ( *SetColor )( vec4_t color );
|
|
void ( *Set2DWindow )( int x, int y, int w, int h, float left, float right, float bottom, float top, float n, float f );
|
|
void ( *DrawStretchPic )( float x, float y, float w, float h, float s1, float t1, float s2, float t2, qhandle_t hShader );
|
|
void ( *DrawTilePic )( float x, float y, float w, float h, qhandle_t hShader );
|
|
void ( *DrawTilePicOffset )( float x, float y, float w, float h, qhandle_t hShader, int offsetX, int offsetY );
|
|
void ( *DrawTrianglePic )( vec2_t *points, vec2_t *texCoords, qhandle_t hShader );
|
|
void ( *DrawBackground )( int cols, int rows, int bgr, unsigned char *data );
|
|
void ( *DrawStretchRaw )( int x, int y, int w, int h, int cols, int rows, int components, unsigned char *data );
|
|
void ( *DebugLine )( vec3_t start, vec3_t end, float r, float g, float b, float alpha );
|
|
void ( *DrawBox )( float x, float y, float w, float h );
|
|
void ( *AddBox )( float x, float y, float w, float h );
|
|
void ( *BeginFrame )( stereoFrame_t stereoFrame );
|
|
void ( *Scissor )( int x, int y, int width, int height );
|
|
void ( *DrawLineLoop )( vec2_t *points, int count, int stippleFactor, int stippleMask );
|
|
void ( *EndFrame )( int *frontEndMsec, int *backEndMsec );
|
|
int ( *MarkFragments )( int numPoints, vec3_t *points, vec3_t projection, int maxPoints, float *pointBuffer, int maxFragments, markFragment_t *fragmentBuffer, float radiusSquared );
|
|
int ( *MarkFragmentsForInlineModel )( clipHandle_t bmodel, vec3_t angles, vec3_t origin, int numPoints, vec3_t *points, vec3_t projection, int maxPoints, float *pointBuffer, int maxFragments, markFragment_t *fragmentBuffer, float radiusSquared );
|
|
void ( *GetInlineModelBounds )( int index, vec3_t mins, vec3_t maxs );
|
|
void ( *GetLightingForDecal )( vec3_t light, vec3_t facing, vec3_t origin );
|
|
void ( *GetLightingForSmoke )( vec3_t light, vec3_t origin );
|
|
int ( *R_GatherLightSources )( vec3_t pos, vec3_t *lightPos, vec3_t *lightIntensity, int maxLights );
|
|
void ( *ModelBounds )( qhandle_t handle, vec3_t mins, vec3_t maxs );
|
|
float ( *ModelRadius )( qhandle_t handle );
|
|
dtiki_t * ( *R_Model_GetHandle )( qhandle_t handle );
|
|
void ( *DrawString )( fontHeader_t *font, char *text, float x, float y, int maxLen, qboolean virtualScreen );
|
|
float ( *GetFontHeight )( fontHeader_t *font );
|
|
float ( *GetFontStringWidth )( fontHeader_t *font, const char *string );
|
|
fontHeader_t * ( *LoadFont )( char *name );
|
|
void ( *SwipeBegin )( float thisTime, float life, qhandle_t hShader );
|
|
void ( *SwipePoint )( vec3_t point1, vec3_t point2, float time );
|
|
void ( *SwipeEnd )( );
|
|
void ( *SetRenderTime )( int t );
|
|
float ( *Noise )( vec3_t vec, int len );
|
|
qboolean ( *SetMode )( int mode, glconfig_t *glConfig );
|
|
void ( *SetFullscreen )( qboolean fullScreen );
|
|
int ( *GetShaderWidth )( qhandle_t hShader );
|
|
int ( *GetShaderHeight )( qhandle_t hShader );
|
|
char * ( *GetGraphicsInfo )( );
|
|
void ( *ForceUpdatePose )( refEntity_t *model );
|
|
orientation_t ( *TIKI_Orientation )( refEntity_t *model, int tagNum );
|
|
qboolean ( *TIKI_IsOnGround )( refEntity_t *model );
|
|
void ( *SetFrameNumber )( int frameNumber );
|
|
|
|
} refExport_t;
|
|
|
|
extern refImport_t ri;
|
|
extern refExport_t re;
|
|
|
|
extern effect_t * effect_list[MAX_EFFECTS];
|
|
|
|
extern cvar_t *r_debug;
|
|
|
|
extern cvar_t *r_dof;
|
|
|
|
extern cvar_t *r_texFilterAniso;
|
|
|
|
extern cvar_t *r_tweakBlurX;
|
|
extern cvar_t *r_tweakBlurY;
|
|
extern cvar_t *r_tweakBlurPasses;
|
|
|
|
extern cvar_t *r_glowEnable;
|
|
extern cvar_t *r_glowQuality;
|
|
extern cvar_t *r_glowSamples;
|
|
|
|
extern cvar_t *r_ssao;
|
|
|
|
extern cvar_t *r_autoluminance;
|
|
extern cvar_t *r_fxaa;
|
|
extern cvar_t *r_test_color;
|
|
extern cvar_t *r_test_bump;
|
|
|
|
#ifdef _CGAME_DLL
|
|
|
|
#if 0
|
|
// vision-specific variables
|
|
extern vvar_t r_glow;
|
|
extern vvar_t r_glowRadius0;
|
|
extern vvar_t r_glowRadius1;
|
|
extern vvar_t r_glowBloomCutoff;
|
|
extern vvar_t r_glowBloomDesaturation;
|
|
extern vvar_t r_glowBloomIntensity0;
|
|
extern vvar_t r_glowBloomIntensity1;
|
|
extern vvar_t r_glowBloomStreakX;
|
|
extern vvar_t r_glowBloomStreakY;
|
|
|
|
extern vvar_t r_filmEnable;
|
|
extern vvar_t r_filmContrast;
|
|
extern vvar_t r_filmBrightness;
|
|
extern vvar_t r_filmDesaturation;
|
|
extern vvar_t r_filmSaturation;
|
|
extern vvar_t r_filmHue;
|
|
extern vvar_t r_filmBleach;
|
|
|
|
extern vvar_t r_filmMidStart;
|
|
extern vvar_t r_filmMidEnd;
|
|
|
|
extern vvar_t r_filmLightTint;
|
|
extern vvar_t r_filmMidTint;
|
|
extern vvar_t r_filmDarkTint;
|
|
|
|
extern vvar_t r_distortionEnable;
|
|
extern vvar_t r_distortionRadius;
|
|
extern vvar_t r_distortionScale;
|
|
#endif
|
|
|
|
//void R_DoPostProcessing(refDef_t *fd);
|
|
#ifdef WANT_OPENGL
|
|
void WINAPI _glBegin(GLenum mode);
|
|
void WINAPI _glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
|
|
void WINAPI _glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
|
|
#endif
|
|
|
|
effect_t * R_GetEffectById(int ID);
|
|
effect_t * R_GetEffectByName(const char * fxName);
|
|
|
|
void R_Draw3D();
|
|
|
|
void R_SetShader( int ent_num, const char * shader, qboolean fDefault );
|
|
void R_AddRefEntityToScene( refEntity_t *ent, int parentEntityNumber );
|
|
void R_AddRefSpriteToScene( refEntity_t *ent );
|
|
|
|
void R_PostProcessEffect(const char * effectName, float intensity, vec3_t colors, float fadetime, qboolean bAddEffect, float parameters[2]);
|
|
void R_ProcessEffectsFade(int frametime);
|
|
void R_RemoveEffect(effect_t * effect);
|
|
void R_Shutdown(void);
|
|
void R_SetSceneColor( vec3_t light, vec3_t dark );
|
|
void R_SetSceneColor2(float intensity, vec3_t color);
|
|
void R_SetSkyColor( vec3_t color );
|
|
qboolean R_ProcessVisionVar( const char * variable, const char * value );
|
|
void R_ProcessBlur( float blur_level, float fade_time );
|
|
void R_ProcessVision( str vision_name, float fade_time, float phase = 0.0f, str type = "vision" );
|
|
|
|
#endif
|
|
|
|
#endif
|