mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 04:22:34 +00:00
- Implemented a simple graphics switch. This currently affects NVidia Optimus-enabled notebooks only.
This commit is contained in:
parent
5e5f88b629
commit
4ebd25171c
3 changed files with 48 additions and 1 deletions
|
@ -71,8 +71,34 @@ FRenderer *gl_CreateInterface();
|
||||||
void I_RestartRenderer();
|
void I_RestartRenderer();
|
||||||
int currentrenderer = -1;
|
int currentrenderer = -1;
|
||||||
int currentcanvas = -1;
|
int currentcanvas = -1;
|
||||||
|
int currentgpuswitch = -1;
|
||||||
bool changerenderer;
|
bool changerenderer;
|
||||||
|
|
||||||
|
// Optimus/Hybrid switcher
|
||||||
|
CUSTOM_CVAR(Int, vid_gpuswitch, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
||||||
|
{
|
||||||
|
if (self != currentgpuswitch)
|
||||||
|
{
|
||||||
|
switch (self)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
Printf("Selecting default GPU...\n");
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
Printf("Selecting high-performance dedicated GPU...\n");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
Printf("Selecting power-saving integrated GPU...\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Printf("Unknown option (%d) - falling back to 'default'\n", *vid_gpuswitch);
|
||||||
|
self = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Printf("You must restart " GAMENAME " for this change to take effect.\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Software OpenGL canvas
|
// Software OpenGL canvas
|
||||||
CUSTOM_CVAR(Bool, vid_used3d, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
CUSTOM_CVAR(Bool, vid_used3d, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
||||||
{
|
{
|
||||||
|
@ -128,6 +154,13 @@ void I_InitGraphics ()
|
||||||
{
|
{
|
||||||
UCVarValue val;
|
UCVarValue val;
|
||||||
|
|
||||||
|
// todo: implement ATI version of this. this only works for nvidia notebooks, for now.
|
||||||
|
currentgpuswitch = vid_gpuswitch;
|
||||||
|
if (currentgpuswitch == 1)
|
||||||
|
putenv("SHIM_MCCOMPAT=0x800000001"); // discrete
|
||||||
|
else if (currentgpuswitch == 2)
|
||||||
|
putenv("SHIM_MCCOMPAT=0x800000000"); // integrated
|
||||||
|
|
||||||
// If the focus window is destroyed, it doesn't go back to the active window.
|
// If the focus window is destroyed, it doesn't go back to the active window.
|
||||||
// (e.g. because the net pane was up, and a button on it had focus)
|
// (e.g. because the net pane was up, and a button on it had focus)
|
||||||
if (GetFocus() == NULL && GetActiveWindow() == Window)
|
if (GetFocus() == NULL && GetActiveWindow() == Window)
|
||||||
|
|
|
@ -1832,6 +1832,7 @@ DSPLYMNU_DIMCOLOR = "Dim color";
|
||||||
DSPLYMNU_MOVEBOB = "View bob amount while moving";
|
DSPLYMNU_MOVEBOB = "View bob amount while moving";
|
||||||
DSPLYMNU_STILLBOB = "View bob amount while not moving";
|
DSPLYMNU_STILLBOB = "View bob amount while not moving";
|
||||||
DSPLYMNU_BOBSPEED = "Weapon bob speed";
|
DSPLYMNU_BOBSPEED = "Weapon bob speed";
|
||||||
|
DSPLYMNU_GPUSWITCH = "Notebook Switchable GPU";
|
||||||
|
|
||||||
// HUD Options
|
// HUD Options
|
||||||
HUDMNU_TITLE = "HUD Options";
|
HUDMNU_TITLE = "HUD Options";
|
||||||
|
@ -2359,6 +2360,8 @@ OPTVAL_GL = "OpenGL";
|
||||||
OPTVAL_D3D = "Direct3D";
|
OPTVAL_D3D = "Direct3D";
|
||||||
OPTVAL_HWPOLY = "OpenGL-Accelerated";
|
OPTVAL_HWPOLY = "OpenGL-Accelerated";
|
||||||
OPTVAL_SWDOOM = "Doom Software Renderer";
|
OPTVAL_SWDOOM = "Doom Software Renderer";
|
||||||
|
OPTVAL_DEDICATED = "High-Performance";
|
||||||
|
OPTVAL_INTEGRATED = "Power-Saving";
|
||||||
|
|
||||||
// Colors
|
// Colors
|
||||||
C_BRICK = "\cabrick";
|
C_BRICK = "\cabrick";
|
||||||
|
|
|
@ -683,6 +683,13 @@ OptionValue Fuzziness
|
||||||
2.0, "$OPTVAL_SHADOW"
|
2.0, "$OPTVAL_SHADOW"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OptionValue GPUSwitch
|
||||||
|
{
|
||||||
|
0.0, "$OPTVAL_DEFAULT"
|
||||||
|
1.0, "$OPTVAL_DEDICATED"
|
||||||
|
2.0, "$OPTVAL_INTEGRATED"
|
||||||
|
}
|
||||||
|
|
||||||
OptionMenu "OpenGLOptions"
|
OptionMenu "OpenGLOptions"
|
||||||
{
|
{
|
||||||
Title "$GLMNU_TITLE"
|
Title "$GLMNU_TITLE"
|
||||||
|
@ -755,7 +762,11 @@ OptionMenu "VideoOptions"
|
||||||
Slider "$DSPLYMNU_MOVEBOB", "movebob", 0, 1.0, 0.05, 2
|
Slider "$DSPLYMNU_MOVEBOB", "movebob", 0, 1.0, 0.05, 2
|
||||||
Slider "$DSPLYMNU_STILLBOB", "stillbob", 0, 1.0, 0.05, 2
|
Slider "$DSPLYMNU_STILLBOB", "stillbob", 0, 1.0, 0.05, 2
|
||||||
Slider "$DSPLYMNU_BOBSPEED", "wbobspeed", 0, 2.0, 0.1
|
Slider "$DSPLYMNU_BOBSPEED", "wbobspeed", 0, 2.0, 0.1
|
||||||
|
IfOption(Windows)
|
||||||
|
{
|
||||||
|
StaticText " "
|
||||||
|
Option "$DSPLYMNU_GPUSWITCH", vid_gpuswitch, "GPUSwitch"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in a new issue