mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-24 21:41:10 +00:00
Merge pull request #1091 from apartfromtime/Texture-filter-menu-option
Texture filtering options for OpenGL and Software video modes
This commit is contained in:
commit
9569f41c3c
2 changed files with 73 additions and 25 deletions
|
@ -189,17 +189,33 @@ ResetDefaults(void *unused)
|
||||||
static void
|
static void
|
||||||
ApplyFilter(void* unused)
|
ApplyFilter(void* unused)
|
||||||
{
|
{
|
||||||
if (s_filter_list.curvalue == 0)
|
if (Q_stricmp(vid_renderer->string, "gl3") == 0 || Q_stricmp(vid_renderer->string, "gles3") == 0 ||
|
||||||
|
Q_stricmp(vid_renderer->string, "gl1") == 0)
|
||||||
{
|
{
|
||||||
Cvar_Set("gl_texturemode", "GL_NEAREST");
|
if (s_filter_list.curvalue == 0)
|
||||||
|
{
|
||||||
|
Cvar_Set("gl_texturemode", "GL_NEAREST");
|
||||||
|
}
|
||||||
|
else if (s_filter_list.curvalue == 1)
|
||||||
|
{
|
||||||
|
Cvar_Set("gl_texturemode", "GL_LINEAR_MIPMAP_NEAREST");
|
||||||
|
}
|
||||||
|
else if (s_filter_list.curvalue == 2)
|
||||||
|
{
|
||||||
|
Cvar_Set("gl_texturemode", "GL_LINEAR_MIPMAP_LINEAR");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (s_filter_list.curvalue == 1)
|
|
||||||
|
if (Q_stricmp(vid_renderer->string, "soft") == 0)
|
||||||
{
|
{
|
||||||
Cvar_Set("gl_texturemode", "GL_LINEAR_MIPMAP_NEAREST");
|
if (s_filter_list.curvalue == 0)
|
||||||
}
|
{
|
||||||
else if (s_filter_list.curvalue == 2)
|
Cvar_Set("sw_texture_filtering", "0");
|
||||||
{
|
}
|
||||||
Cvar_Set("gl_texturemode", "GL_LINEAR_MIPMAP_LINEAR");
|
else if (s_filter_list.curvalue == 1)
|
||||||
|
{
|
||||||
|
Cvar_Set("sw_texture_filtering", "1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,6 +420,12 @@ VID_MenuInit(void)
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *onoff_names[] = {
|
||||||
|
"off",
|
||||||
|
"on",
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
static const char *yesno_names[] = {
|
static const char *yesno_names[] = {
|
||||||
"no",
|
"no",
|
||||||
"yes",
|
"yes",
|
||||||
|
@ -702,26 +724,48 @@ VID_MenuInit(void)
|
||||||
|
|
||||||
s_filter_list.generic.type = MTYPE_SPINCONTROL;
|
s_filter_list.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_filter_list.generic.name = "texture filter";
|
s_filter_list.generic.name = "texture filter";
|
||||||
s_filter_list.generic.x = 0;
|
|
||||||
s_filter_list.generic.y = (y += 10);
|
|
||||||
s_filter_list.itemnames = filter_names;
|
|
||||||
s_filter_list.curvalue = 0;
|
s_filter_list.curvalue = 0;
|
||||||
s_filter_list.generic.callback = ApplyFilter;
|
s_filter_list.generic.callback = ApplyFilter;
|
||||||
|
|
||||||
const char* filter = Cvar_VariableString("gl_texturemode");
|
const char* filter = NULL;
|
||||||
int mode = 3;
|
int mode = 0;
|
||||||
|
|
||||||
if (Q_stricmp(filter, "GL_NEAREST") == 0)
|
if (Q_stricmp(vid_renderer->string, "gl3") == 0 || Q_stricmp(vid_renderer->string, "gles3") == 0 ||
|
||||||
|
Q_stricmp(vid_renderer->string, "gl1") == 0)
|
||||||
{
|
{
|
||||||
|
s_filter_list.generic.x = 0;
|
||||||
|
s_filter_list.generic.y = (y += 10);
|
||||||
|
s_filter_list.itemnames = filter_names;
|
||||||
|
|
||||||
|
filter = Cvar_VariableString("gl_texturemode");
|
||||||
|
mode = 3;
|
||||||
|
|
||||||
|
if (Q_stricmp(filter, "GL_NEAREST") == 0)
|
||||||
|
{
|
||||||
|
mode = 0;
|
||||||
|
}
|
||||||
|
else if (Q_stricmp(filter, "GL_LINEAR_MIPMAP_NEAREST") == 0)
|
||||||
|
{
|
||||||
|
mode = 1;
|
||||||
|
}
|
||||||
|
else if (Q_stricmp(filter, "GL_LINEAR_MIPMAP_LINEAR") == 0)
|
||||||
|
{
|
||||||
|
mode = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Q_stricmp(vid_renderer->string, "soft") == 0)
|
||||||
|
{
|
||||||
|
s_filter_list.generic.x = 0;
|
||||||
|
s_filter_list.generic.y = (y += 10);
|
||||||
|
s_filter_list.itemnames = onoff_names;
|
||||||
|
|
||||||
|
filter = Cvar_VariableString("sw_texture_filtering");
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
|
||||||
else if (Q_stricmp(filter, "GL_LINEAR_MIPMAP_NEAREST") == 0)
|
if (Q_stricmp(filter, "1") == 0)
|
||||||
{
|
{
|
||||||
mode = 1;
|
mode = 1;
|
||||||
}
|
}
|
||||||
else if (Q_stricmp(filter, "GL_LINEAR_MIPMAP_LINEAR") == 0)
|
|
||||||
{
|
|
||||||
mode = 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s_filter_list.curvalue = mode;
|
s_filter_list.curvalue = mode;
|
||||||
|
@ -772,7 +816,11 @@ VID_MenuInit(void)
|
||||||
Menu_AddItem(&s_opengl_menu, (void *)&s_vsync_list);
|
Menu_AddItem(&s_opengl_menu, (void *)&s_vsync_list);
|
||||||
Menu_AddItem(&s_opengl_menu, (void *)&s_af_list);
|
Menu_AddItem(&s_opengl_menu, (void *)&s_af_list);
|
||||||
Menu_AddItem(&s_opengl_menu, (void *)&s_msaa_list);
|
Menu_AddItem(&s_opengl_menu, (void *)&s_msaa_list);
|
||||||
Menu_AddItem(&s_opengl_menu, (void *)&s_filter_list);
|
if (Q_stricmp(vid_renderer->string, "gl3") == 0 || Q_stricmp(vid_renderer->string, "gles3") == 0 ||
|
||||||
|
Q_stricmp(vid_renderer->string, "gl1") == 0 || Q_stricmp(vid_renderer->string, "soft") == 0)
|
||||||
|
{
|
||||||
|
Menu_AddItem(&s_opengl_menu, (void *)&s_filter_list);
|
||||||
|
}
|
||||||
Menu_AddItem(&s_opengl_menu, (void *)&s_defaults_action);
|
Menu_AddItem(&s_opengl_menu, (void *)&s_defaults_action);
|
||||||
Menu_AddItem(&s_opengl_menu, (void *)&s_apply_action);
|
Menu_AddItem(&s_opengl_menu, (void *)&s_apply_action);
|
||||||
|
|
||||||
|
|
|
@ -1332,7 +1332,7 @@ RE_RenderFrame (refdef_t *fd)
|
||||||
// compare current position with old
|
// compare current position with old
|
||||||
if (vid_buffer_width <= 640 ||
|
if (vid_buffer_width <= 640 ||
|
||||||
!VectorCompareRound(fd->vieworg, lastvieworg) ||
|
!VectorCompareRound(fd->vieworg, lastvieworg) ||
|
||||||
!VectorCompare(fd->viewangles, lastviewangles))
|
!VectorCompareRound(fd->viewangles, lastviewangles))
|
||||||
{
|
{
|
||||||
fastmoving = true;
|
fastmoving = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue