mirror of
https://github.com/nzp-team/fteqw.git
synced 2025-01-31 20:50:47 +00:00
Better anisotropic filtering support
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1878 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
dc53b0aae4
commit
e713a9b5ab
1 changed files with 22 additions and 21 deletions
|
@ -576,8 +576,6 @@ glmode_t modes[] = {
|
||||||
{"GL_LINEAR_MIPMAP_LINEAR", "ll", GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR}
|
{"GL_LINEAR_MIPMAP_LINEAR", "ll", GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Control the anisotropy filtering. ~ Moodles
|
|
||||||
|
|
||||||
void GLDraw_Anisotropy_f (void)
|
void GLDraw_Anisotropy_f (void)
|
||||||
{
|
{
|
||||||
gltexture_t *glt;
|
gltexture_t *glt;
|
||||||
|
@ -586,44 +584,47 @@ void GLDraw_Anisotropy_f (void)
|
||||||
|
|
||||||
if (!gl_config.ext_texture_filter_anisotropic)
|
if (!gl_config.ext_texture_filter_anisotropic)
|
||||||
{
|
{
|
||||||
Con_Printf("Ignoring anisotropy (not supported)\n");
|
Con_Printf("Anisotropic Filtering: NOT SUPPORTED\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qglGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gl_anisotropy_factor_max); // im lazy
|
qglGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gl_anisotropy_factor_max);
|
||||||
|
|
||||||
arg = Cmd_Argv(1);
|
arg = Cmd_Argv(1);
|
||||||
|
|
||||||
param = atoi(arg); // I know this isn't gcc compatible, but im no lunix programmer so someone can fix it
|
param = atoi(arg);
|
||||||
|
|
||||||
if (Cmd_Argc() == 1)
|
if (Cmd_Argc() == 1)
|
||||||
{
|
{
|
||||||
Con_Printf("Maximum filtering factor: %d\n",gl_anisotropy_factor_max);
|
|
||||||
Con_Printf("0 & 1 = off, 2+ = on\n");
|
|
||||||
|
|
||||||
//insert code that detects if user has forced AF through drivers
|
//insert code that detects if user has forced AF through drivers
|
||||||
//because it has no effect if it is forced
|
//because it has no effect if it is forced
|
||||||
|
|
||||||
if ((gl_anisotropy_factor == 0) || (gl_anisotropy_factor == 1))
|
if (gl_anisotropy_factor == 1)
|
||||||
{
|
{
|
||||||
Con_Printf("Anisotropic Filtering Factor: off\n");
|
Con_Printf("Anisotropic Filtering: 1 (OFF) (Maximum: %dx)\n",gl_anisotropy_factor_max);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Con_Printf("Current Anisotopic Filtering Factor: %d\n",gl_anisotropy_factor);
|
Con_Printf("Anisotropic Filtering: %dx (Maximum: %dx)\n",gl_anisotropy_factor,gl_anisotropy_factor_max);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (param == 0) // Nvidia says GL Error when this is 0, ATI doesn't. 1 = off anyway.
|
||||||
|
param = 1;
|
||||||
|
|
||||||
|
if ((fmod(param,2.0f) != 0.0f) && (param != 1)) // anisotropic filtering works in factors of 2
|
||||||
|
param = param+1;
|
||||||
|
|
||||||
if (param > gl_anisotropy_factor_max)
|
if (param > gl_anisotropy_factor_max)
|
||||||
{
|
|
||||||
Con_Printf("Maximum filtering factor: %d, set to %d, ignoring %d\n",gl_anisotropy_factor_max,gl_anisotropy_factor_max,param);
|
|
||||||
param = gl_anisotropy_factor_max;
|
param = gl_anisotropy_factor_max;
|
||||||
}
|
|
||||||
|
|
||||||
gl_anisotropy_factor = param;
|
gl_anisotropy_factor = param;
|
||||||
|
|
||||||
Con_Printf("Attempting to set Anisotopic Filtering factor: %d\n",gl_anisotropy_factor);
|
if (param == 1)
|
||||||
|
Con_Printf("Anisotropic Filtering: %d (OFF) (Maximum: %dx)\n",gl_anisotropy_factor,gl_anisotropy_factor_max);
|
||||||
|
else
|
||||||
|
Con_Printf("Anisotropic Filtering: %dx (Maximum: %dx)\n",gl_anisotropy_factor,gl_anisotropy_factor_max);
|
||||||
|
|
||||||
/* change all the existing max anisotropy settings */
|
/* change all the existing max anisotropy settings */
|
||||||
for (glt = gltextures; glt ; glt = glt->next) //redo anisotropic filtering when map is changed
|
for (glt = gltextures; glt ; glt = glt->next) //redo anisotropic filtering when map is changed
|
||||||
|
|
Loading…
Reference in a new issue