1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-06-25 22:09:35 +00:00

Rewrite settings load.

This commit is contained in:
Sergey Lipskiy 2015-04-08 23:01:16 +06:00
parent 69b1df4a64
commit b5087e428b

View File

@ -11,6 +11,82 @@
#include "Settings.h"
static
void _loadSettings(QSettings & settings)
{
settings.beginGroup("video");
config.video.fullscreenWidth = settings.value("fullscreenWidth", config.video.fullscreenWidth).toInt();
config.video.fullscreenHeight = settings.value("fullscreenHeight", config.video.fullscreenHeight).toInt();
config.video.windowedWidth = settings.value("windowedWidth", config.video.windowedWidth).toInt();
config.video.windowedHeight = settings.value("windowedHeight", config.video.windowedHeight).toInt();
config.video.fullscreenRefresh = settings.value("fullscreenRefresh", config.video.fullscreenRefresh).toInt();
config.video.multisampling = settings.value("multisampling", config.video.multisampling).toInt();
settings.endGroup();
settings.beginGroup("texture");
config.texture.maxAnisotropy = settings.value("maxAnisotropy", config.texture.maxAnisotropy).toInt();
config.texture.bilinearMode = settings.value("bilinearMode", config.texture.bilinearMode).toInt();
config.texture.maxBytes = settings.value("maxBytes", config.texture.maxBytes).toInt();
config.texture.screenShotFormat = settings.value("screenShotFormat", config.texture.screenShotFormat).toInt();
settings.endGroup();
settings.beginGroup("generalEmulation");
config.generalEmulation.enableFog = settings.value("enableFog", config.generalEmulation.enableFog).toInt();
config.generalEmulation.enableNoise = settings.value("enableNoise", config.generalEmulation.enableNoise).toInt();
config.generalEmulation.enableLOD = settings.value("enableLOD", config.generalEmulation.enableLOD).toInt();
config.generalEmulation.enableHWLighting = settings.value("enableHWLighting", config.generalEmulation.enableHWLighting).toInt();
config.generalEmulation.enableCustomSettings = settings.value("enableCustomSettings", config.generalEmulation.enableCustomSettings).toInt();
settings.endGroup();
settings.beginGroup("frameBufferEmulation");
config.frameBufferEmulation.enable = settings.value("enable", config.frameBufferEmulation.enable).toInt();
config.frameBufferEmulation.copyToRDRAM = settings.value("copyToRDRAM", config.frameBufferEmulation.copyToRDRAM).toInt();
config.frameBufferEmulation.copyDepthToRDRAM = settings.value("copyDepthToRDRAM", config.frameBufferEmulation.copyDepthToRDRAM).toInt();
config.frameBufferEmulation.copyFromRDRAM = settings.value("copyFromRDRAM", config.frameBufferEmulation.copyFromRDRAM).toInt();
config.frameBufferEmulation.detectCFB = settings.value("detectCFB", config.frameBufferEmulation.detectCFB).toInt();
config.frameBufferEmulation.N64DepthCompare = settings.value("N64DepthCompare", config.frameBufferEmulation.N64DepthCompare).toInt();
config.frameBufferEmulation.aspect = settings.value("aspect", config.frameBufferEmulation.aspect).toInt();
config.frameBufferEmulation.validityCheckMethod = settings.value("validityCheckMethod", config.frameBufferEmulation.validityCheckMethod).toInt();
settings.endGroup();
settings.beginGroup("textureFilter");
config.textureFilter.txFilterMode = settings.value("txFilterMode", config.textureFilter.txFilterMode).toInt();
config.textureFilter.txEnhancementMode = settings.value("txEnhancementMode", config.textureFilter.txEnhancementMode).toInt();
config.textureFilter.txFilterIgnoreBG = settings.value("txFilterIgnoreBG", config.textureFilter.txFilterIgnoreBG).toInt();
config.textureFilter.txCacheSize = settings.value("txCacheSize", config.textureFilter.txCacheSize).toInt();
config.textureFilter.txHiresEnable = settings.value("txHiresEnable", config.textureFilter.txHiresEnable).toInt();
config.textureFilter.txHiresFullAlphaChannel = settings.value("txHiresFullAlphaChannel", config.textureFilter.txHiresFullAlphaChannel).toInt();
config.textureFilter.txHresAltCRC = settings.value("txHresAltCRC", config.textureFilter.txHresAltCRC).toInt();
config.textureFilter.txDump = settings.value("txDump", config.textureFilter.txDump).toInt();
config.textureFilter.txForce16bpp = settings.value("txForce16bpp", config.textureFilter.txForce16bpp).toInt();
config.textureFilter.txCacheCompression = settings.value("txCacheCompression", config.textureFilter.txCacheCompression).toInt();
config.textureFilter.txSaveCache = settings.value("txSaveCache", config.textureFilter.txSaveCache).toInt();
settings.value("txPath", "").toString().toWCharArray(config.textureFilter.txPath);
settings.endGroup();
settings.beginGroup("font");
config.font.name = settings.value("name", config.font.name.c_str()).toString().toLocal8Bit().constData();
config.font.size = settings.value("size", config.font.size).toInt();
QColor fontColor = settings.value("color", QColor(config.font.color[0], config.font.color[1], config.font.color[2])).value<QColor>();
config.font.color[0] = fontColor.red();
config.font.color[1] = fontColor.green();
config.font.color[2] = fontColor.blue();
config.font.color[4] = fontColor.alpha();
config.font.colorf[0] = _FIXED2FLOAT(config.font.color[0], 8);
config.font.colorf[1] = _FIXED2FLOAT(config.font.color[1], 8);
config.font.colorf[2] = _FIXED2FLOAT(config.font.color[2], 8);
config.font.colorf[3] = config.font.color[3] == 0 ? 1.0f : _FIXED2FLOAT(config.font.color[3], 8);
settings.endGroup();
settings.beginGroup("bloomFilter");
config.bloomFilter.enable = settings.value("enable", config.bloomFilter.enable).toInt();
config.bloomFilter.thresholdLevel = settings.value("thresholdLevel", config.bloomFilter.thresholdLevel).toInt();
config.bloomFilter.blendMode = settings.value("blendMode", config.bloomFilter.blendMode).toInt();
config.bloomFilter.blurAmount = settings.value("blurAmount", config.bloomFilter.blurAmount).toInt();
config.bloomFilter.blurStrength = settings.value("blurStrength", config.bloomFilter.blurStrength).toInt();
settings.endGroup();
}
void loadSettings(const QString & _strFileName)
{
// QSettings settings("Emulation", "GLideN64");
@ -23,84 +99,10 @@ void loadSettings(const QString & _strFileName)
return;
}
settings.beginGroup("video");
config.video.fullscreen = 0;
config.video.fullscreenWidth = settings.value("fullscreenWidth", 640).toInt();
config.video.fullscreenHeight = settings.value("fullscreenHeight", 480).toInt();
config.video.windowedWidth = settings.value("windowedWidth", 640).toInt();
config.video.windowedHeight = settings.value("windowedHeight", 480).toInt();
config.video.fullscreenRefresh = settings.value("fullscreenRefresh", 60).toInt();
config.video.multisampling = settings.value("multisampling", 0).toInt();
settings.endGroup();
settings.beginGroup("texture");
config.texture.maxAnisotropy = settings.value("maxAnisotropy", 0).toInt();
config.texture.bilinearMode = settings.value("bilinearMode", BILINEAR_STANDARD).toInt();
config.texture.maxBytes = settings.value("maxBytes", 500 * gc_uMegabyte).toInt();
config.texture.screenShotFormat = settings.value("screenShotFormat", 0).toInt();
settings.endGroup();
settings.beginGroup("generalEmulation");
config.generalEmulation.enableFog = settings.value("enableFog", 1).toInt();
config.generalEmulation.enableNoise = settings.value("enableNoise", 1).toInt();
config.generalEmulation.enableLOD = settings.value("enableLOD", 1).toInt();
config.generalEmulation.enableHWLighting = settings.value("enableHWLighting", 0).toInt();
config.generalEmulation.enableCustomSettings = settings.value("enableCustomSettings", 0).toInt();
settings.endGroup();
settings.beginGroup("frameBufferEmulation");
config.frameBufferEmulation.enable = settings.value("enable", 1).toInt();
config.frameBufferEmulation.copyToRDRAM = settings.value("copyToRDRAM", 0).toInt();
config.frameBufferEmulation.copyDepthToRDRAM = settings.value("copyDepthToRDRAM", 1).toInt();
config.frameBufferEmulation.copyFromRDRAM = settings.value("copyFromRDRAM", 0).toInt();
config.frameBufferEmulation.detectCFB = settings.value("detectCFB", 0).toInt();
config.frameBufferEmulation.N64DepthCompare = settings.value("N64DepthCompare", 0).toInt();
config.frameBufferEmulation.aspect = settings.value("aspect", 0).toInt();
config.frameBufferEmulation.validityCheckMethod = settings.value("validityCheckMethod", 0).toInt();
settings.endGroup();
settings.beginGroup("textureFilter");
config.textureFilter.txFilterMode = settings.value("txFilterMode", 0).toInt();
config.textureFilter.txEnhancementMode = settings.value("txEnhancementMode", 0).toInt();
config.textureFilter.txFilterIgnoreBG = settings.value("txFilterIgnoreBG", 0).toInt();
config.textureFilter.txCacheSize = settings.value("txCacheSize", 100 * gc_uMegabyte).toInt();
config.textureFilter.txHiresEnable = settings.value("txHiresEnable", 0).toInt();
config.textureFilter.txHiresFullAlphaChannel = settings.value("txHiresFullAlphaChannel", 0).toInt();
config.textureFilter.txHresAltCRC = settings.value("txHresAltCRC", 0).toInt();
config.textureFilter.txDump = settings.value("txDump", 0).toInt();
config.textureFilter.txForce16bpp = settings.value("txForce16bpp", 0).toInt();
config.textureFilter.txCacheCompression = settings.value("txCacheCompression", 1).toInt();
config.textureFilter.txSaveCache = settings.value("txSaveCache", 1).toInt();
settings.value("txPath", "").toString().toWCharArray(config.textureFilter.txPath);
settings.endGroup();
settings.beginGroup("font");
#ifdef OS_WINDOWS
const char * defaultFontName = "arial.ttf";
config.font.name = settings.value("name", defaultFontName).toString().toLocal8Bit().constData();
#else
const char * defaultFontName = "FreeSans.ttf";
config.font.name = settings.value("name", defaultFontName).toString().toStdString();
#endif
config.font.size = settings.value("size", 18).toInt();
QColor fontColor = settings.value("color", QColor(0xB5, 0xE6, 0x1D)).value<QColor>();
config.font.color[0] = fontColor.red();
config.font.color[1] = fontColor.green();
config.font.color[2] = fontColor.blue();
config.font.color[4] = fontColor.alpha();
config.font.colorf[0] = _FIXED2FLOAT(config.font.color[0], 8);
config.font.colorf[1] = _FIXED2FLOAT(config.font.color[1], 8);
config.font.colorf[2] = _FIXED2FLOAT(config.font.color[2], 8);
config.font.colorf[3] = config.font.color[3] == 0 ? 1.0f : _FIXED2FLOAT(config.font.color[3], 8);
settings.endGroup();
settings.beginGroup("bloomFilter");
config.bloomFilter.enable = settings.value("enable", 0).toInt();
config.bloomFilter.thresholdLevel = settings.value("thresholdLevel", 4).toInt();
config.bloomFilter.blendMode = settings.value("blendMode", 0).toInt();
config.bloomFilter.blurAmount = settings.value("blurAmount", 10).toInt();
config.bloomFilter.blurStrength = settings.value("blurStrength", 20).toInt();
settings.endGroup();
const u32 hacks = config.generalEmulation.hacks;
config.resetToDefaults();
_loadSettings(settings);
config.generalEmulation.hacks = hacks;
}
void writeSettings(const QString & _strFileName)
@ -191,41 +193,6 @@ void loadCustomRomSettings(const QString & _strFileName, const char * _strRomNam
return;
settings.beginGroup(romName);
settings.beginGroup("video");
config.video.multisampling = settings.value("multisampling", config.video.multisampling).toInt();
settings.endGroup();
settings.beginGroup("texture");
config.texture.maxAnisotropy = settings.value("maxAnisotropy", config.texture.maxAnisotropy).toInt();
config.texture.bilinearMode = settings.value("bilinearMode", config.texture.bilinearMode).toInt();
settings.endGroup();
settings.beginGroup("generalEmulation");
config.generalEmulation.enableFog = settings.value("enableFog", config.generalEmulation.enableFog).toInt();
config.generalEmulation.enableNoise = settings.value("enableNoise", config.generalEmulation.enableNoise).toInt();
config.generalEmulation.enableLOD = settings.value("enableLOD", config.generalEmulation.enableLOD).toInt();
config.generalEmulation.enableHWLighting = settings.value("enableHWLighting", config.generalEmulation.enableHWLighting).toInt();
settings.endGroup();
settings.beginGroup("frameBufferEmulation");
config.frameBufferEmulation.enable = settings.value("enable", config.frameBufferEmulation.enable).toInt();
config.frameBufferEmulation.copyToRDRAM = settings.value("copyToRDRAM", config.frameBufferEmulation.copyToRDRAM).toInt();
config.frameBufferEmulation.copyDepthToRDRAM = settings.value("copyDepthToRDRAM", config.frameBufferEmulation.copyDepthToRDRAM).toInt();
config.frameBufferEmulation.copyFromRDRAM = settings.value("copyFromRDRAM", config.frameBufferEmulation.copyFromRDRAM).toInt();
config.frameBufferEmulation.detectCFB = settings.value("detectCFB", config.frameBufferEmulation.detectCFB).toInt();
config.frameBufferEmulation.N64DepthCompare = settings.value("N64DepthCompare", config.frameBufferEmulation.N64DepthCompare).toInt();
config.frameBufferEmulation.aspect = settings.value("aspect", config.frameBufferEmulation.aspect).toInt();
config.frameBufferEmulation.validityCheckMethod = settings.value("validityCheckMethod", config.frameBufferEmulation.aspect).toInt();
settings.endGroup();
settings.beginGroup("bloomFilter");
config.bloomFilter.enable = settings.value("enable", config.bloomFilter.enable).toInt();
config.bloomFilter.thresholdLevel = settings.value("thresholdLevel", config.bloomFilter.thresholdLevel).toInt();
config.bloomFilter.blendMode = settings.value("blendMode", config.bloomFilter.blendMode).toInt();
config.bloomFilter.blurAmount = settings.value("blurAmount", config.bloomFilter.blurAmount).toInt();
config.bloomFilter.blurStrength = settings.value("blurStrength", config.bloomFilter.blurStrength).toInt();
settings.endGroup();
_loadSettings(settings);
settings.endGroup();
}