diff options
| author | MerryMage <MerryMage@users.noreply.github.com> | 2017-05-18 13:59:38 +0100 |
|---|---|---|
| committer | MerryMage <MerryMage@users.noreply.github.com> | 2017-06-03 18:13:02 +0100 |
| commit | f5f45855f03a7396dce07cdd65017e9b1ab5bfe7 (patch) | |
| tree | 96cdb46685ba94f5c8f2f6ac3fc2ba17d05de1e7 /Source/Core/VideoCommon/VideoConfig.cpp | |
| parent | d75b536fd7809dab10bb2e0194312673e977a3fe (diff) | |
GameConfigLoader: Add GFX Game INI translations
Diffstat (limited to 'Source/Core/VideoCommon/VideoConfig.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/VideoConfig.cpp | 379 |
1 files changed, 110 insertions, 269 deletions
diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index 3865095f4b..619b8212b5 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -10,6 +10,7 @@ #include "Common/IniFile.h" #include "Common/MsgHandler.h" #include "Common/StringUtil.h" +#include "Core/Config/GraphicsSettings.h" #include "Core/ConfigManager.h" #include "Core/Core.h" #include "Core/Movie.h" @@ -19,6 +20,7 @@ VideoConfig g_Config; VideoConfig g_ActiveConfig; +static bool s_has_registered_callback = false; void UpdateActiveConfig() { @@ -47,92 +49,118 @@ VideoConfig::VideoConfig() bBackendMultithreading = true; } -void VideoConfig::Load(const std::string& ini_file) +void VideoConfig::Refresh() { - IniFile iniFile; - iniFile.Load(ini_file); - - IniFile::Section* hardware = iniFile.GetOrCreateSection("Hardware"); - hardware->Get("VSync", &bVSync, false); - hardware->Get("Adapter", &iAdapter, 0); - - IniFile::Section* settings = iniFile.GetOrCreateSection("Settings"); - settings->Get("wideScreenHack", &bWidescreenHack, false); - settings->Get("AspectRatio", &iAspectRatio, (int)ASPECT_AUTO); - settings->Get("Crop", &bCrop, false); - settings->Get("UseXFB", &bUseXFB, false); - settings->Get("UseRealXFB", &bUseRealXFB, false); - settings->Get("SafeTextureCacheColorSamples", &iSafeTextureCache_ColorSamples, 128); - settings->Get("ShowFPS", &bShowFPS, false); - settings->Get("ShowNetPlayPing", &bShowNetPlayPing, false); - settings->Get("ShowNetPlayMessages", &bShowNetPlayMessages, false); - settings->Get("LogRenderTimeToFile", &bLogRenderTimeToFile, false); - settings->Get("OverlayStats", &bOverlayStats, false); - settings->Get("OverlayProjStats", &bOverlayProjStats, false); - settings->Get("DumpTextures", &bDumpTextures, false); - settings->Get("HiresTextures", &bHiresTextures, false); - settings->Get("ConvertHiresTextures", &bConvertHiresTextures, false); - settings->Get("CacheHiresTextures", &bCacheHiresTextures, false); - settings->Get("DumpEFBTarget", &bDumpEFBTarget, false); - settings->Get("DumpFramesAsImages", &bDumpFramesAsImages, false); - settings->Get("FreeLook", &bFreeLook, false); - settings->Get("UseFFV1", &bUseFFV1, false); - settings->Get("DumpFormat", &sDumpFormat, "avi"); - settings->Get("DumpCodec", &sDumpCodec, ""); - settings->Get("DumpPath", &sDumpPath, ""); - settings->Get("BitrateKbps", &iBitrateKbps, 2500); - settings->Get("InternalResolutionFrameDumps", &bInternalResolutionFrameDumps, false); - settings->Get("EnableGPUTextureDecoding", &bEnableGPUTextureDecoding, false); - settings->Get("EnablePixelLighting", &bEnablePixelLighting, false); - settings->Get("FastDepthCalc", &bFastDepthCalc, true); - settings->Get("MSAA", &iMultisamples, 1); - settings->Get("SSAA", &bSSAA, false); - settings->Get("EFBScale", &iEFBScale, (int)SCALE_1X); // native - settings->Get("TexFmtOverlayEnable", &bTexFmtOverlayEnable, false); - settings->Get("TexFmtOverlayCenter", &bTexFmtOverlayCenter, false); - settings->Get("WireFrame", &bWireFrame, false); - settings->Get("DisableFog", &bDisableFog, false); - settings->Get("BorderlessFullscreen", &bBorderlessFullscreen, false); - settings->Get("EnableValidationLayer", &bEnableValidationLayer, false); - settings->Get("BackendMultithreading", &bBackendMultithreading, true); - settings->Get("CommandBufferExecuteInterval", &iCommandBufferExecuteInterval, 100); - settings->Get("ShaderCache", &bShaderCache, true); - - settings->Get("SWZComploc", &bZComploc, true); - settings->Get("SWZFreeze", &bZFreeze, true); - settings->Get("SWDumpObjects", &bDumpObjects, false); - settings->Get("SWDumpTevStages", &bDumpTevStages, false); - settings->Get("SWDumpTevTexFetches", &bDumpTevTextureFetches, false); - settings->Get("SWDrawStart", &drawStart, 0); - settings->Get("SWDrawEnd", &drawEnd, 100000); - - IniFile::Section* enhancements = iniFile.GetOrCreateSection("Enhancements"); - enhancements->Get("ForceFiltering", &bForceFiltering, false); - enhancements->Get("MaxAnisotropy", &iMaxAnisotropy, 0); // NOTE - this is x in (1 << x) - enhancements->Get("PostProcessingShader", &sPostProcessingShader, ""); - enhancements->Get("ForceTrueColor", &bForceTrueColor, true); - - IniFile::Section* stereoscopy = iniFile.GetOrCreateSection("Stereoscopy"); - stereoscopy->Get("StereoMode", &iStereoMode, 0); - stereoscopy->Get("StereoDepth", &iStereoDepth, 20); - stereoscopy->Get("StereoConvergencePercentage", &iStereoConvergencePercentage, 100); - stereoscopy->Get("StereoSwapEyes", &bStereoSwapEyes, false); - - IniFile::Section* hacks = iniFile.GetOrCreateSection("Hacks"); - hacks->Get("EFBAccessEnable", &bEFBAccessEnable, true); - hacks->Get("BBoxEnable", &bBBoxEnable, false); - hacks->Get("BBoxPreferStencilImplementation", &bBBoxPreferStencilImplementation, false); - hacks->Get("ForceProgressive", &bForceProgressive, true); - hacks->Get("EFBToTextureEnable", &bSkipEFBCopyToRam, true); - hacks->Get("EFBScaledCopy", &bCopyEFBScaled, true); - hacks->Get("EFBEmulateFormatChanges", &bEFBEmulateFormatChanges, false); - hacks->Get("VertexRounding", &bVertexRounding, false); + if (!s_has_registered_callback) + { + Config::AddConfigChangedCallback([]() { g_Config.Refresh(); }); + s_has_registered_callback = true; + } - // hacks which are disabled by default - iPhackvalue[0] = 0; - bPerfQueriesEnable = false; + bVSync = Config::Get(Config::GFX_VSYNC); + iAdapter = Config::Get(Config::GFX_ADAPTER); + + bWidescreenHack = Config::Get(Config::GFX_WIDESCREEN_HACK); + iAspectRatio = Config::Get(Config::GFX_ASPECT_RATIO); + bCrop = Config::Get(Config::GFX_CROP); + bUseXFB = Config::Get(Config::GFX_USE_XFB); + bUseRealXFB = Config::Get(Config::GFX_USE_REAL_XFB); + iSafeTextureCache_ColorSamples = Config::Get(Config::GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES); + bShowFPS = Config::Get(Config::GFX_SHOW_FPS); + bShowNetPlayPing = Config::Get(Config::GFX_SHOW_NETPLAY_PING); + bShowNetPlayMessages = Config::Get(Config::GFX_SHOW_NETPLAY_MESSAGES); + bLogRenderTimeToFile = Config::Get(Config::GFX_LOG_RENDER_TIME_TO_FILE); + bOverlayStats = Config::Get(Config::GFX_OVERLAY_STATS); + bOverlayProjStats = Config::Get(Config::GFX_OVERLAY_PROJ_STATS); + bDumpTextures = Config::Get(Config::GFX_DUMP_TEXTURES); + bHiresTextures = Config::Get(Config::GFX_HIRES_TEXTURES); + bConvertHiresTextures = Config::Get(Config::GFX_CONVERT_HIRES_TEXTURES); + bCacheHiresTextures = Config::Get(Config::GFX_CACHE_HIRES_TEXTURES); + bDumpEFBTarget = Config::Get(Config::GFX_DUMP_EFB_TARGET); + bDumpFramesAsImages = Config::Get(Config::GFX_DUMP_FRAMES_AS_IMAGES); + bFreeLook = Config::Get(Config::GFX_FREE_LOOK); + bUseFFV1 = Config::Get(Config::GFX_USE_FFV1); + sDumpFormat = Config::Get(Config::GFX_DUMP_FORMAT); + sDumpCodec = Config::Get(Config::GFX_DUMP_CODEC); + sDumpPath = Config::Get(Config::GFX_DUMP_PATH); + iBitrateKbps = Config::Get(Config::GFX_BITRATE_KBPS); + bInternalResolutionFrameDumps = Config::Get(Config::GFX_INTERNAL_RESOLUTION_FRAME_DUMPS); + bEnableGPUTextureDecoding = Config::Get(Config::GFX_ENABLE_GPU_TEXTURE_DECODING); + bEnablePixelLighting = Config::Get(Config::GFX_ENABLE_PIXEL_LIGHTING); + bFastDepthCalc = Config::Get(Config::GFX_FAST_DEPTH_CALC); + iMultisamples = Config::Get(Config::GFX_MSAA); + bSSAA = Config::Get(Config::GFX_SSAA); + iEFBScale = Config::Get(Config::GFX_EFB_SCALE); + bTexFmtOverlayEnable = Config::Get(Config::GFX_TEXFMT_OVERLAY_ENABLE); + bTexFmtOverlayCenter = Config::Get(Config::GFX_TEXFMT_OVERLAY_CENTER); + bWireFrame = Config::Get(Config::GFX_ENABLE_WIREFRAME); + bDisableFog = Config::Get(Config::GFX_DISABLE_FOG); + bBorderlessFullscreen = Config::Get(Config::GFX_BORDERLESS_FULLSCREEN); + bEnableValidationLayer = Config::Get(Config::GFX_ENABLE_VALIDATION_LAYER); + bBackendMultithreading = Config::Get(Config::GFX_BACKEND_MULTITHREADING); + iCommandBufferExecuteInterval = Config::Get(Config::GFX_COMMAND_BUFFER_EXECUTE_INTERVAL); + bShaderCache = Config::Get(Config::GFX_SHADER_CACHE); + + bZComploc = Config::Get(Config::GFX_SW_ZCOMPLOC); + bZFreeze = Config::Get(Config::GFX_SW_ZFREEZE); + bDumpObjects = Config::Get(Config::GFX_SW_DUMP_OBJECTS); + bDumpTevStages = Config::Get(Config::GFX_SW_DUMP_TEV_STAGES); + bDumpTevTextureFetches = Config::Get(Config::GFX_SW_DUMP_TEV_TEX_FETCHES); + drawStart = Config::Get(Config::GFX_SW_DRAW_START); + drawEnd = Config::Get(Config::GFX_SW_DRAW_END); + + bForceFiltering = Config::Get(Config::GFX_ENHANCE_FORCE_FILTERING); + iMaxAnisotropy = Config::Get(Config::GFX_ENHANCE_MAX_ANISOTROPY); + sPostProcessingShader = Config::Get(Config::GFX_ENHANCE_POST_SHADER); + bForceTrueColor = Config::Get(Config::GFX_ENHANCE_FORCE_TRUE_COLOR); + + iStereoMode = Config::Get(Config::GFX_STEREO_MODE); + iStereoDepth = Config::Get(Config::GFX_STEREO_DEPTH); + iStereoConvergencePercentage = Config::Get(Config::GFX_STEREO_CONVERGENCE_PERCENTAGE); + bStereoSwapEyes = Config::Get(Config::GFX_STEREO_SWAP_EYES); + iStereoConvergence = Config::Get(Config::GFX_STEREO_CONVERGENCE); + bStereoEFBMonoDepth = Config::Get(Config::GFX_STEREO_EFB_MONO_DEPTH); + iStereoDepthPercentage = Config::Get(Config::GFX_STEREO_DEPTH_PERCENTAGE); + + bEFBAccessEnable = Config::Get(Config::GFX_HACK_EFB_ACCESS_ENABLE); + bBBoxEnable = Config::Get(Config::GFX_HACK_BBOX_ENABLE); + bBBoxPreferStencilImplementation = + Config::Get(Config::GFX_HACK_BBOX_PREFER_STENCIL_IMPLEMENTATION); + bForceProgressive = Config::Get(Config::GFX_HACK_FORCE_PROGRESSIVE); + bSkipEFBCopyToRam = Config::Get(Config::GFX_HACK_SKIP_EFB_COPY_TO_RAM); + bCopyEFBScaled = Config::Get(Config::GFX_HACK_COPY_EFB_ENABLED); + bEFBEmulateFormatChanges = Config::Get(Config::GFX_HACK_EFB_EMULATE_FORMAT_CHANGES); + bVertexRounding = Config::Get(Config::GFX_HACK_VERTEX_ROUDING); + + iPhackvalue[0] = Config::Get(Config::GFX_PROJECTION_HACK); + iPhackvalue[1] = Config::Get(Config::GFX_PROJECTION_HACK_SZNEAR); + iPhackvalue[2] = Config::Get(Config::GFX_PROJECTION_HACK_SZFAR); + sPhackvalue[0] = Config::Get(Config::GFX_PROJECTION_HACK_ZNEAR); + sPhackvalue[1] = Config::Get(Config::GFX_PROJECTION_HACK_ZFAR); + bPerfQueriesEnable = Config::Get(Config::GFX_PERF_QUERIES_ENABLE); + + if (iEFBScale == SCALE_FORCE_INTEGRAL) + { + // Round down to multiple of native IR + switch (Config::GetBase(Config::GFX_EFB_SCALE)) + { + case SCALE_AUTO: + iEFBScale = SCALE_AUTO_INTEGRAL; + break; + case SCALE_1_5X: + iEFBScale = SCALE_1X; + break; + case SCALE_2_5X: + iEFBScale = SCALE_2X; + break; + default: + iEFBScale = Config::GetBase(Config::GFX_EFB_SCALE); + break; + } + } // Load common settings + IniFile iniFile; iniFile.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX)); IniFile::Section* interface = iniFile.GetOrCreateSection("Interface"); bool bTmp; @@ -142,109 +170,6 @@ void VideoConfig::Load(const std::string& ini_file) VerifyValidity(); } -void VideoConfig::GameIniLoad() -{ - bool gfx_override_exists = false; - -// XXX: Again, bad place to put OSD messages at (see delroth's comment above) -// XXX: This will add an OSD message for each projection hack value... meh -#define CHECK_SETTING(section, key, var) \ - do \ - { \ - decltype(var) temp = var; \ - if (iniFile.GetIfExists(section, key, &var) && var != temp) \ - { \ - std::string msg = StringFromFormat("Note: Option \"%s\" is overridden by game ini.", key); \ - OSD::AddMessage(msg, 7500); \ - gfx_override_exists = true; \ - } \ - } while (0) - - IniFile iniFile = SConfig::GetInstance().LoadGameIni(); - - CHECK_SETTING("Video_Hardware", "VSync", bVSync); - - CHECK_SETTING("Video_Settings", "wideScreenHack", bWidescreenHack); - CHECK_SETTING("Video_Settings", "AspectRatio", iAspectRatio); - CHECK_SETTING("Video_Settings", "Crop", bCrop); - CHECK_SETTING("Video_Settings", "UseXFB", bUseXFB); - CHECK_SETTING("Video_Settings", "UseRealXFB", bUseRealXFB); - CHECK_SETTING("Video_Settings", "SafeTextureCacheColorSamples", iSafeTextureCache_ColorSamples); - CHECK_SETTING("Video_Settings", "HiresTextures", bHiresTextures); - CHECK_SETTING("Video_Settings", "ConvertHiresTextures", bConvertHiresTextures); - CHECK_SETTING("Video_Settings", "CacheHiresTextures", bCacheHiresTextures); - CHECK_SETTING("Video_Settings", "EnablePixelLighting", bEnablePixelLighting); - CHECK_SETTING("Video_Settings", "FastDepthCalc", bFastDepthCalc); - CHECK_SETTING("Video_Settings", "MSAA", iMultisamples); - CHECK_SETTING("Video_Settings", "SSAA", bSSAA); - CHECK_SETTING("Video_Settings", "ForceTrueColor", bForceTrueColor); - - int tmp = -9000; - CHECK_SETTING("Video_Settings", "EFBScale", tmp); // integral - if (tmp != -9000) - { - if (tmp != SCALE_FORCE_INTEGRAL) - { - iEFBScale = tmp; - } - else // Round down to multiple of native IR - { - switch (iEFBScale) - { - case SCALE_AUTO: - iEFBScale = SCALE_AUTO_INTEGRAL; - break; - case SCALE_1_5X: - iEFBScale = SCALE_1X; - break; - case SCALE_2_5X: - iEFBScale = SCALE_2X; - break; - default: - break; - } - } - } - - CHECK_SETTING("Video_Settings", "DisableFog", bDisableFog); - CHECK_SETTING("Video_Settings", "BackendMultithreading", bBackendMultithreading); - CHECK_SETTING("Video_Settings", "CommandBufferExecuteInterval", iCommandBufferExecuteInterval); - - CHECK_SETTING("Video_Enhancements", "ForceFiltering", bForceFiltering); - CHECK_SETTING("Video_Enhancements", "MaxAnisotropy", - iMaxAnisotropy); // NOTE - this is x in (1 << x) - CHECK_SETTING("Video_Enhancements", "PostProcessingShader", sPostProcessingShader); - - // These are not overrides, they are per-game stereoscopy parameters, hence no warning - iniFile.GetIfExists("Video_Stereoscopy", "StereoConvergence", &iStereoConvergence, 20); - iniFile.GetIfExists("Video_Stereoscopy", "StereoEFBMonoDepth", &bStereoEFBMonoDepth, false); - iniFile.GetIfExists("Video_Stereoscopy", "StereoDepthPercentage", &iStereoDepthPercentage, 100); - - CHECK_SETTING("Video_Stereoscopy", "StereoMode", iStereoMode); - CHECK_SETTING("Video_Stereoscopy", "StereoDepth", iStereoDepth); - CHECK_SETTING("Video_Stereoscopy", "StereoSwapEyes", bStereoSwapEyes); - - CHECK_SETTING("Video_Hacks", "EFBAccessEnable", bEFBAccessEnable); - CHECK_SETTING("Video_Hacks", "BBoxEnable", bBBoxEnable); - CHECK_SETTING("Video_Hacks", "ForceProgressive", bForceProgressive); - CHECK_SETTING("Video_Hacks", "EFBToTextureEnable", bSkipEFBCopyToRam); - CHECK_SETTING("Video_Hacks", "EFBScaledCopy", bCopyEFBScaled); - CHECK_SETTING("Video_Hacks", "EFBEmulateFormatChanges", bEFBEmulateFormatChanges); - CHECK_SETTING("Video_Hacks", "VertexRounding", bVertexRounding); - - CHECK_SETTING("Video", "ProjectionHack", iPhackvalue[0]); - CHECK_SETTING("Video", "PH_SZNear", iPhackvalue[1]); - CHECK_SETTING("Video", "PH_SZFar", iPhackvalue[2]); - CHECK_SETTING("Video", "PH_ZNear", sPhackvalue[0]); - CHECK_SETTING("Video", "PH_ZFar", sPhackvalue[1]); - CHECK_SETTING("Video", "PerfQueriesEnable", bPerfQueriesEnable); - - if (gfx_override_exists) - OSD::AddMessage( - "Warning: Opening the graphics configuration will reset settings and might cause issues!", - 10000); -} - void VideoConfig::VerifyValidity() { // TODO: Check iMaxAnisotropy value @@ -274,90 +199,6 @@ void VideoConfig::VerifyValidity() } } -void VideoConfig::Save(const std::string& ini_file) -{ - IniFile iniFile; - iniFile.Load(ini_file); - - IniFile::Section* hardware = iniFile.GetOrCreateSection("Hardware"); - hardware->Set("VSync", bVSync); - hardware->Set("Adapter", iAdapter); - - IniFile::Section* settings = iniFile.GetOrCreateSection("Settings"); - settings->Set("AspectRatio", iAspectRatio); - settings->Set("Crop", bCrop); - settings->Set("wideScreenHack", bWidescreenHack); - settings->Set("UseXFB", bUseXFB); - settings->Set("UseRealXFB", bUseRealXFB); - settings->Set("SafeTextureCacheColorSamples", iSafeTextureCache_ColorSamples); - settings->Set("ShowFPS", bShowFPS); - settings->Set("ShowNetPlayPing", bShowNetPlayPing); - settings->Set("ShowNetPlayMessages", bShowNetPlayMessages); - settings->Set("LogRenderTimeToFile", bLogRenderTimeToFile); - settings->Set("OverlayStats", bOverlayStats); - settings->Set("OverlayProjStats", bOverlayProjStats); - settings->Set("DumpTextures", bDumpTextures); - settings->Set("HiresTextures", bHiresTextures); - settings->Set("ConvertHiresTextures", bConvertHiresTextures); - settings->Set("CacheHiresTextures", bCacheHiresTextures); - settings->Set("DumpEFBTarget", bDumpEFBTarget); - settings->Set("DumpFramesAsImages", bDumpFramesAsImages); - settings->Set("FreeLook", bFreeLook); - settings->Set("UseFFV1", bUseFFV1); - settings->Set("DumpFormat", sDumpFormat); - settings->Set("DumpCodec", sDumpCodec); - settings->Set("DumpPath", sDumpPath); - settings->Set("BitrateKbps", iBitrateKbps); - settings->Set("InternalResolutionFrameDumps", bInternalResolutionFrameDumps); - settings->Set("EnableGPUTextureDecoding", bEnableGPUTextureDecoding); - settings->Set("EnablePixelLighting", bEnablePixelLighting); - settings->Set("FastDepthCalc", bFastDepthCalc); - settings->Set("MSAA", iMultisamples); - settings->Set("SSAA", bSSAA); - settings->Set("EFBScale", iEFBScale); - settings->Set("TexFmtOverlayEnable", bTexFmtOverlayEnable); - settings->Set("TexFmtOverlayCenter", bTexFmtOverlayCenter); - settings->Set("Wireframe", bWireFrame); - settings->Set("DisableFog", bDisableFog); - settings->Set("BorderlessFullscreen", bBorderlessFullscreen); - settings->Set("EnableValidationLayer", bEnableValidationLayer); - settings->Set("BackendMultithreading", bBackendMultithreading); - settings->Set("CommandBufferExecuteInterval", iCommandBufferExecuteInterval); - settings->Set("ShaderCache", bShaderCache); - - settings->Set("SWZComploc", bZComploc); - settings->Set("SWZFreeze", bZFreeze); - settings->Set("SWDumpObjects", bDumpObjects); - settings->Set("SWDumpTevStages", bDumpTevStages); - settings->Set("SWDumpTevTexFetches", bDumpTevTextureFetches); - settings->Set("SWDrawStart", drawStart); - settings->Set("SWDrawEnd", drawEnd); - - IniFile::Section* enhancements = iniFile.GetOrCreateSection("Enhancements"); - enhancements->Set("ForceFiltering", bForceFiltering); - enhancements->Set("MaxAnisotropy", iMaxAnisotropy); - enhancements->Set("PostProcessingShader", sPostProcessingShader); - enhancements->Set("ForceTrueColor", bForceTrueColor); - - IniFile::Section* stereoscopy = iniFile.GetOrCreateSection("Stereoscopy"); - stereoscopy->Set("StereoMode", iStereoMode); - stereoscopy->Set("StereoDepth", iStereoDepth); - stereoscopy->Set("StereoConvergencePercentage", iStereoConvergencePercentage); - stereoscopy->Set("StereoSwapEyes", bStereoSwapEyes); - - IniFile::Section* hacks = iniFile.GetOrCreateSection("Hacks"); - hacks->Set("EFBAccessEnable", bEFBAccessEnable); - hacks->Set("BBoxEnable", bBBoxEnable); - hacks->Set("BBoxPreferStencilImplementation", bBBoxPreferStencilImplementation); - hacks->Set("ForceProgressive", bForceProgressive); - hacks->Set("EFBToTextureEnable", bSkipEFBCopyToRam); - hacks->Set("EFBScaledCopy", bCopyEFBScaled); - hacks->Set("EFBEmulateFormatChanges", bEFBEmulateFormatChanges); - hacks->Set("VertexRounding", bVertexRounding); - - iniFile.Save(ini_file); -} - bool VideoConfig::IsVSync() { return bVSync && !Core::GetIsThrottlerTempDisabled(); |
