summaryrefslogtreecommitdiff
path: root/src/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer')
-rw-r--r--src/renderer/tr_image.c6
-rw-r--r--src/renderer/tr_image_png.c2
-rw-r--r--src/renderer/tr_init.c12
-rw-r--r--src/renderer/tr_light.c6
-rw-r--r--src/renderer/tr_local.h1
-rw-r--r--src/renderer/tr_mesh.c2
-rw-r--r--src/renderer/tr_model.c2
-rw-r--r--src/renderer/tr_public.h23
-rw-r--r--src/renderer/tr_scene.c2
-rw-r--r--src/renderer/tr_shade.c8
-rw-r--r--src/renderer/tr_shade_calc.c10
-rw-r--r--src/renderer/tr_shader.c6
-rw-r--r--src/renderer/tr_sky.c8
-rw-r--r--src/renderer/tr_world.c2
14 files changed, 60 insertions, 30 deletions
diff --git a/src/renderer/tr_image.c b/src/renderer/tr_image.c
index 136daf5f..a8b1a3be 100644
--- a/src/renderer/tr_image.c
+++ b/src/renderer/tr_image.c
@@ -1435,7 +1435,7 @@ static char *CommaParse( char **data_p ) {
if (len == MAX_TOKEN_CHARS)
{
-// Com_Printf ("Token exceeded %i chars, discarded.\n", MAX_TOKEN_CHARS);
+// ri.Printf (PRINT_DEVELOPER, "Token exceeded %i chars, discarded.\n", MAX_TOKEN_CHARS);
len = 0;
}
com_token[len] = 0;
@@ -1464,12 +1464,12 @@ qhandle_t RE_RegisterSkin( const char *name ) {
char surfName[MAX_QPATH];
if ( !name || !name[0] ) {
- Com_Printf( "Empty name passed to RE_RegisterSkin\n" );
+ ri.Printf( PRINT_DEVELOPER, "Empty name passed to RE_RegisterSkin\n" );
return 0;
}
if ( strlen( name ) >= MAX_QPATH ) {
- Com_Printf( "Skin name exceeds MAX_QPATH\n" );
+ ri.Printf( PRINT_DEVELOPER, "Skin name exceeds MAX_QPATH\n" );
return 0;
}
diff --git a/src/renderer/tr_image_png.c b/src/renderer/tr_image_png.c
index 8b65f758..4dc9d9bb 100644
--- a/src/renderer/tr_image_png.c
+++ b/src/renderer/tr_image_png.c
@@ -2063,7 +2063,7 @@ void R_LoadPNG(const char *name, byte **pic, int *width, int *height)
{
CloseBufferedFile(ThePNG);
- Com_Printf(S_COLOR_YELLOW "%s: invalid image size\n", name);
+ ri.Printf( PRINT_WARNING, "%s: invalid image size\n", name );
return;
}
diff --git a/src/renderer/tr_init.c b/src/renderer/tr_init.c
index 7715cd7f..6819b030 100644
--- a/src/renderer/tr_init.c
+++ b/src/renderer/tr_init.c
@@ -1021,7 +1021,7 @@ void R_Register( void )
r_overBrightBits = ri.Cvar_Get ("r_overBrightBits", "1", CVAR_ARCHIVE | CVAR_LATCH );
r_ignorehwgamma = ri.Cvar_Get( "r_ignorehwgamma", "0", CVAR_ARCHIVE | CVAR_LATCH);
r_fullscreen = ri.Cvar_Get( "r_fullscreen", "1", CVAR_ARCHIVE );
- r_noborder = Cvar_Get("r_noborder", "0", CVAR_ARCHIVE);
+ r_noborder = ri.Cvar_Get("r_noborder", "0", CVAR_ARCHIVE);
r_width = ri.Cvar_Get( "r_width", "640", CVAR_ARCHIVE | CVAR_LATCH );
r_height = ri.Cvar_Get( "r_height", "480", CVAR_ARCHIVE | CVAR_LATCH );
r_pixelAspect = ri.Cvar_Get( "r_pixelAspect", "1", CVAR_ARCHIVE | CVAR_LATCH );
@@ -1141,6 +1141,7 @@ void R_Register( void )
ri.Cmd_AddCommand( "screenshot", R_ScreenShot_f );
ri.Cmd_AddCommand( "screenshotJPEG", R_ScreenShotJPEG_f );
ri.Cmd_AddCommand( "gfxinfo", GfxInfo_f );
+ ri.Cmd_AddCommand( "minimize", GLimp_Minimize );
}
/*
@@ -1163,7 +1164,7 @@ void R_Init( void ) {
// Swap_Init();
if ( (intptr_t)tess.xyz & 15 ) {
- Com_Printf( "WARNING: tess.xyz not 16 byte aligned\n" );
+ ri.Printf( PRINT_WARNING, "tess.xyz not 16 byte aligned\n" );
}
Com_Memset( tess.constantColor255, 255, sizeof( tess.constantColor255 ) );
@@ -1288,7 +1289,7 @@ Touch all images to make sure they are resident
*/
void RE_EndRegistration( void ) {
R_SyncRenderThread();
- if (!Sys_LowPhysicalMemory()) {
+ if (!ri.Sys_LowPhysicalMemory()) {
RB_ShowImages();
}
}
@@ -1300,7 +1301,12 @@ GetRefAPI
@@@@@@@@@@@@@@@@@@@@@
*/
+#ifdef USE_RENDERER_DLOPEN
+Q_EXPORT refexport_t QDECL *GetRefAPI ( int apiVersion, refimport_t *rimp ) {
+#else
refexport_t *GetRefAPI ( int apiVersion, refimport_t *rimp ) {
+#endif
+
static refexport_t re;
ri = *rimp;
diff --git a/src/renderer/tr_light.c b/src/renderer/tr_light.c
index 05aca8b8..78441bb7 100644
--- a/src/renderer/tr_light.c
+++ b/src/renderer/tr_light.c
@@ -360,9 +360,9 @@ void R_SetupEntityLighting( const trRefdef_t *refdef, trRefEntity_t *ent ) {
}
// save out the byte packet version
- ((byte *)&ent->ambientLightInt)[0] = Q_ftol(ent->ambientLight[0]);
- ((byte *)&ent->ambientLightInt)[1] = Q_ftol(ent->ambientLight[1]);
- ((byte *)&ent->ambientLightInt)[2] = Q_ftol(ent->ambientLight[2]);
+ ((byte *)&ent->ambientLightInt)[0] = ri.ftol(ent->ambientLight[0]);
+ ((byte *)&ent->ambientLightInt)[1] = ri.ftol(ent->ambientLight[1]);
+ ((byte *)&ent->ambientLightInt)[2] = ri.ftol(ent->ambientLight[2]);
((byte *)&ent->ambientLightInt)[3] = 0xff;
// transform the direction to local space
diff --git a/src/renderer/tr_local.h b/src/renderer/tr_local.h
index fe7a4ba5..b15a2b0e 100644
--- a/src/renderer/tr_local.h
+++ b/src/renderer/tr_local.h
@@ -1304,6 +1304,7 @@ void GLimp_FrontEndSleep( void );
void GLimp_WakeRenderer( void *data );
void GLimp_LogComment( char *comment );
+void GLimp_Minimize(void);
// NOTE TTimo linux works with float gamma value, not the gamma table
// the params won't be used, getting the r_gamma cvar directly
diff --git a/src/renderer/tr_mesh.c b/src/renderer/tr_mesh.c
index 446ee836..effbae01 100644
--- a/src/renderer/tr_mesh.c
+++ b/src/renderer/tr_mesh.c
@@ -219,7 +219,7 @@ int R_ComputeLOD( trRefEntity_t *ent ) {
}
flod *= tr.currentModel->numLods;
- lod = Q_ftol(flod);
+ lod = ri.ftol(flod);
if ( lod < 0 )
{
diff --git a/src/renderer/tr_model.c b/src/renderer/tr_model.c
index ce0bbdf7..b79fd458 100644
--- a/src/renderer/tr_model.c
+++ b/src/renderer/tr_model.c
@@ -279,7 +279,7 @@ qhandle_t RE_RegisterModel( const char *name ) {
}
if ( strlen( name ) >= MAX_QPATH ) {
- Com_Printf( "Model name exceeds MAX_QPATH\n" );
+ ri.Printf( PRINT_ALL, "Model name exceeds MAX_QPATH\n" );
return 0;
}
diff --git a/src/renderer/tr_public.h b/src/renderer/tr_public.h
index fd2e4c05..d95a0023 100644
--- a/src/renderer/tr_public.h
+++ b/src/renderer/tr_public.h
@@ -133,8 +133,11 @@ typedef struct {
cvar_t *(*Cvar_Get)( const char *name, const char *value, int flags );
void (*Cvar_Set)( const char *name, const char *value );
+ void (*Cvar_SetValue) (const char *name, float value);
void (*Cvar_CheckRange)( cvar_t *cv, float minVal, float maxVal, qboolean shouldBeIntegral );
+ int (*Cvar_VariableIntegerValue) (const char *var_name);
+
void (*Cmd_AddCommand)( const char *name, void(*cmd)(void) );
void (*Cmd_RemoveCommand)( const char *name );
@@ -143,6 +146,8 @@ typedef struct {
void (*Cmd_ExecuteText) (int exec_when, const char *text);
+ byte *(*CM_ClusterPVS)(int cluster);
+
// visualization for debugging collision detection
void (*CM_DrawDebugSurface)( void (*drawPoly)(int color, int numPoints, float *points) );
@@ -162,12 +167,30 @@ typedef struct {
e_status (*CIN_RunCinematic) (int handle);
void (*CL_WriteAVIVideoFrame)( const byte *buffer, int size );
+
+ // input event handling
+ void (*IN_Init)( void );
+ void (*IN_Shutdown)( void );
+ void (*IN_Restart)( void );
+
+ // math
+ long (*ftol)(float f);
+
+ // system stuff
+ void (*Sys_SetEnv)( const char *name, const char *value );
+ void (*Sys_GLimpSafeInit)( void );
+ void (*Sys_GLimpInit)( void );
+ qboolean (*Sys_LowPhysicalMemory)( void );
} refimport_t;
// this is the only function actually exported at the linker level
// If the module can't init to a valid rendering state, NULL will be
// returned.
+#ifdef USE_RENDERER_DLOPEN
+typedef refexport_t* (QDECL *GetRefAPI_t) (int apiVersion, refimport_t * rimp);
+#else
refexport_t*GetRefAPI( int apiVersion, refimport_t *rimp );
+#endif
#endif // __TR_PUBLIC_H
diff --git a/src/renderer/tr_scene.c b/src/renderer/tr_scene.c
index 232cb684..f7483e8f 100644
--- a/src/renderer/tr_scene.c
+++ b/src/renderer/tr_scene.c
@@ -216,7 +216,7 @@ void RE_AddRefEntityToScene( const refEntity_t *ent ) {
static qboolean firstTime = qtrue;
if (firstTime) {
firstTime = qfalse;
- Com_DPrintf(S_COLOR_YELLOW "WARNING: RE_AddRefEntityToScene passed a refEntity which has an origin with a NaN component\n");
+ ri.Printf( PRINT_WARNING, "RE_AddRefEntityToScene passed a refEntity which has an origin with a NaN component\n");
}
return;
}
diff --git a/src/renderer/tr_shade.c b/src/renderer/tr_shade.c
index c71a8d34..b8e8d268 100644
--- a/src/renderer/tr_shade.c
+++ b/src/renderer/tr_shade.c
@@ -234,7 +234,7 @@ static void R_BindAnimatedImage( textureBundle_t *bundle ) {
// it is necessary to do this messy calc to make sure animations line up
// exactly with waveforms of the same frequency
- index = Q_ftol(tess.shaderTime * bundle->imageAnimationSpeed * FUNCTABLE_SIZE);
+ index = ri.ftol(tess.shaderTime * bundle->imageAnimationSpeed * FUNCTABLE_SIZE);
index >>= FUNCTABLE_SIZE2;
if ( index < 0 ) {
@@ -690,9 +690,9 @@ static void ProjectDlightTexture_scalar( void ) {
}
}
clipBits[i] = clip;
- colors[0] = Q_ftol(floatColor[0] * modulate);
- colors[1] = Q_ftol(floatColor[1] * modulate);
- colors[2] = Q_ftol(floatColor[2] * modulate);
+ colors[0] = ri.ftol(floatColor[0] * modulate);
+ colors[1] = ri.ftol(floatColor[1] * modulate);
+ colors[2] = ri.ftol(floatColor[2] * modulate);
colors[3] = 255;
}
diff --git a/src/renderer/tr_shade_calc.c b/src/renderer/tr_shade_calc.c
index a88aac9f..58ec6f45 100644
--- a/src/renderer/tr_shade_calc.c
+++ b/src/renderer/tr_shade_calc.c
@@ -28,7 +28,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#endif
-#define WAVEVALUE( table, base, amplitude, phase, freq ) ((base) + table[ Q_ftol( ( ( (phase) + tess.shaderTime * (freq) ) * FUNCTABLE_SIZE ) ) & FUNCTABLE_MASK ] * (amplitude))
+#define WAVEVALUE( table, base, amplitude, phase, freq ) ((base) + table[ ri.ftol( ( ( (phase) + tess.shaderTime * (freq) ) * FUNCTABLE_SIZE ) ) & FUNCTABLE_MASK ] * (amplitude))
static float *TableForFunc( genFunc_t func )
{
@@ -700,7 +700,7 @@ void RB_CalcWaveColor( const waveForm_t *wf, unsigned char *dstColors )
glow = 1;
}
- v = Q_ftol(255 * glow);
+ v = ri.ftol(255 * glow);
color[0] = color[1] = color[2] = v;
color[3] = 255;
v = *(int *)color;
@@ -1181,19 +1181,19 @@ static void RB_CalcDiffuseColor_scalar( unsigned char *colors )
*(int *)&colors[i*4] = ambientLightInt;
continue;
}
- j = Q_ftol(ambientLight[0] + incoming * directedLight[0]);
+ j = ri.ftol(ambientLight[0] + incoming * directedLight[0]);
if ( j > 255 ) {
j = 255;
}
colors[i*4+0] = j;
- j = Q_ftol(ambientLight[1] + incoming * directedLight[1]);
+ j = ri.ftol(ambientLight[1] + incoming * directedLight[1]);
if ( j > 255 ) {
j = 255;
}
colors[i*4+1] = j;
- j = Q_ftol(ambientLight[2] + incoming * directedLight[2]);
+ j = ri.ftol(ambientLight[2] + incoming * directedLight[2]);
if ( j > 255 ) {
j = 255;
}
diff --git a/src/renderer/tr_shader.c b/src/renderer/tr_shader.c
index 3152612a..2bbc3a12 100644
--- a/src/renderer/tr_shader.c
+++ b/src/renderer/tr_shader.c
@@ -2702,7 +2702,7 @@ qhandle_t RE_RegisterShaderLightMap( const char *name, int lightmapIndex ) {
shader_t *sh;
if ( strlen( name ) >= MAX_QPATH ) {
- Com_Printf( "Shader name exceeds MAX_QPATH\n" );
+ ri.Printf( PRINT_ALL, "Shader name exceeds MAX_QPATH\n" );
return 0;
}
@@ -2736,7 +2736,7 @@ qhandle_t RE_RegisterShader( const char *name ) {
shader_t *sh;
if ( strlen( name ) >= MAX_QPATH ) {
- Com_Printf( "Shader name exceeds MAX_QPATH\n" );
+ ri.Printf( PRINT_ALL, "Shader name exceeds MAX_QPATH\n" );
return 0;
}
@@ -2766,7 +2766,7 @@ qhandle_t RE_RegisterShaderNoMip( const char *name ) {
shader_t *sh;
if ( strlen( name ) >= MAX_QPATH ) {
- Com_Printf( "Shader name exceeds MAX_QPATH\n" );
+ ri.Printf( PRINT_ALL, "Shader name exceeds MAX_QPATH\n" );
return 0;
}
diff --git a/src/renderer/tr_sky.c b/src/renderer/tr_sky.c
index ffe84f50..3b90fdeb 100644
--- a/src/renderer/tr_sky.c
+++ b/src/renderer/tr_sky.c
@@ -554,10 +554,10 @@ static void FillCloudBox( const shader_t *shader, int stage )
continue;
}
- sky_mins_subd[0] = Q_ftol(sky_mins[0][i] * HALF_SKY_SUBDIVISIONS);
- sky_mins_subd[1] = Q_ftol(sky_mins[1][i] * HALF_SKY_SUBDIVISIONS);
- sky_maxs_subd[0] = Q_ftol(sky_maxs[0][i] * HALF_SKY_SUBDIVISIONS);
- sky_maxs_subd[1] = Q_ftol(sky_maxs[1][i] * HALF_SKY_SUBDIVISIONS);
+ sky_mins_subd[0] = ri.ftol(sky_mins[0][i] * HALF_SKY_SUBDIVISIONS);
+ sky_mins_subd[1] = ri.ftol(sky_mins[1][i] * HALF_SKY_SUBDIVISIONS);
+ sky_maxs_subd[0] = ri.ftol(sky_maxs[0][i] * HALF_SKY_SUBDIVISIONS);
+ sky_maxs_subd[1] = ri.ftol(sky_maxs[1][i] * HALF_SKY_SUBDIVISIONS);
if ( sky_mins_subd[0] < -HALF_SKY_SUBDIVISIONS )
sky_mins_subd[0] = -HALF_SKY_SUBDIVISIONS;
diff --git a/src/renderer/tr_world.c b/src/renderer/tr_world.c
index 8f91285e..85a0043f 100644
--- a/src/renderer/tr_world.c
+++ b/src/renderer/tr_world.c
@@ -548,7 +548,7 @@ qboolean R_inPVS( const vec3_t p1, const vec3_t p2 ) {
byte *vis;
leaf = R_PointInLeaf( p1 );
- vis = CM_ClusterPVS( leaf->cluster );
+ vis = ri.CM_ClusterPVS( leaf->cluster ); // why not R_ClusterPVS ??
leaf = R_PointInLeaf( p2 );
if ( !(vis[leaf->cluster>>3] & (1<<(leaf->cluster&7))) ) {