mirror of https://github.com/PCSX2/pcsx2.git
Merge pull request #1370 from PCSX2/gsdx-default-option
Gsdx default option
This commit is contained in:
commit
7682bf9b49
|
@ -223,8 +223,8 @@ namespace GLLoader {
|
|||
std::string opt("override_");
|
||||
opt += name;
|
||||
|
||||
if (theApp.GetConfig(opt.c_str(), -1) != -1) {
|
||||
found = !!theApp.GetConfig(opt.c_str(), -1);
|
||||
if (theApp.GetConfigI(opt.c_str()) != -1) {
|
||||
found = theApp.GetConfigB(opt.c_str());
|
||||
fprintf(stderr, "Override %s detection (%s)\n", name.c_str(), found ? "Enabled" : "Disabled");
|
||||
}
|
||||
|
||||
|
@ -256,8 +256,8 @@ namespace GLLoader {
|
|||
if (strstr(vendor, "VMware")) // Assume worst case because I don't know the real status
|
||||
mesa_amd_buggy_driver = intel_buggy_driver = true;
|
||||
|
||||
if (theApp.GetConfig("override_geometry_shader", -1) != -1) {
|
||||
found_geometry_shader = !!theApp.GetConfig("override_geometry_shader", -1);
|
||||
if (theApp.GetConfigI("override_geometry_shader") != -1) {
|
||||
found_geometry_shader = theApp.GetConfigB("override_geometry_shader");
|
||||
fprintf(stderr, "Overriding geometry shaders detection\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -186,12 +186,12 @@ static int _GSopen(void** dsp, const char* title, GSRendererType renderer, int t
|
|||
|
||||
if(renderer == GSRendererType::Undefined)
|
||||
{
|
||||
renderer = static_cast<GSRendererType>(theApp.GetConfig("Renderer", static_cast<int>(GSRendererType::Default)));
|
||||
renderer = static_cast<GSRendererType>(theApp.GetConfigI("Renderer"));
|
||||
}
|
||||
|
||||
if(threads == -1)
|
||||
{
|
||||
threads = theApp.GetConfig("extrathreads", DEFAULT_EXTRA_RENDERING_THREADS);
|
||||
threads = theApp.GetConfigI("extrathreads");
|
||||
}
|
||||
|
||||
GSWnd* wnd[2] = { NULL, NULL };
|
||||
|
@ -362,8 +362,8 @@ static int _GSopen(void** dsp, const char* title, GSRendererType renderer, int t
|
|||
{
|
||||
// old-style API expects us to create and manage our own window:
|
||||
|
||||
int w = theApp.GetConfig("ModeWidth", 0);
|
||||
int h = theApp.GetConfig("ModeHeight", 0);
|
||||
int w = theApp.GetConfigI("ModeWidth");
|
||||
int h = theApp.GetConfigI("ModeHeight");
|
||||
|
||||
#if defined(__unix__)
|
||||
for(uint32 i = 0; i < 2; i++) {
|
||||
|
@ -465,7 +465,7 @@ static int _GSopen(void** dsp, const char* title, GSRendererType renderer, int t
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (renderer == GSRendererType::OGL_HW && theApp.GetConfig("debug_glsl_shader", 0) == 2) {
|
||||
if (renderer == GSRendererType::OGL_HW && theApp.GetConfigI("debug_glsl_shader") == 2) {
|
||||
printf("GSdx: test OpenGL shader. Please wait...\n\n");
|
||||
static_cast<GSDeviceOGL*>(s_gs->m_dev)->SelfShaderTest();
|
||||
printf("\nGSdx: test OpenGL shader done. It will now exit\n");
|
||||
|
@ -484,12 +484,7 @@ EXPORT_C_(int) GSopen2(void** dsp, uint32 flags)
|
|||
// Fresh start up or config file changed
|
||||
if (renderer == GSRendererType::Undefined)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
GSRendererType default_renderer = GSUtil::CheckDirect3D11Level() >= D3D_FEATURE_LEVEL_10_0 ? GSRendererType::DX1011_HW : GSRendererType::DX9_HW;
|
||||
#else
|
||||
GSRendererType default_renderer = GSRendererType::Default;
|
||||
#endif
|
||||
renderer = static_cast<GSRendererType>(theApp.GetConfig("Renderer", static_cast<int>(default_renderer)));
|
||||
renderer = static_cast<GSRendererType>(theApp.GetConfigI("Renderer"));
|
||||
}
|
||||
else if (stored_toggle_state != toggle_state)
|
||||
{
|
||||
|
@ -545,7 +540,7 @@ EXPORT_C_(int) GSopen(void** dsp, const char* title, int mt)
|
|||
|
||||
// Legacy GUI expects to acquire vsync from the configuration files.
|
||||
|
||||
s_vsync = !!theApp.GetConfig("vsync", 0);
|
||||
s_vsync = !!theApp.GetConfigI("vsync");
|
||||
|
||||
if(mt == 2)
|
||||
{
|
||||
|
@ -563,7 +558,7 @@ EXPORT_C_(int) GSopen(void** dsp, const char* title, int mt)
|
|||
{
|
||||
// normal init
|
||||
|
||||
renderer = static_cast<GSRendererType>(theApp.GetConfig("Renderer", static_cast<int>(GSRendererType::Default)));
|
||||
renderer = static_cast<GSRendererType>(theApp.GetConfigI("Renderer"));
|
||||
}
|
||||
|
||||
*dsp = NULL;
|
||||
|
@ -883,7 +878,7 @@ EXPORT_C_(int) GSsetupRecording(int start, void* data)
|
|||
return 0;
|
||||
}
|
||||
#if defined(__unix__)
|
||||
if (!theApp.GetConfig("capture_enabled", 0)) {
|
||||
if (!theApp.GetConfigB("capture_enabled")) {
|
||||
printf("GSdx: Recording is disabled\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -1072,7 +1067,7 @@ EXPORT_C GSReplay(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow)
|
|||
uint8 regs[0x2000];
|
||||
GSsetBaseMem(regs);
|
||||
|
||||
s_vsync = !!theApp.GetConfig("vsync", 0);
|
||||
s_vsync = theApp.GetConfigB("vsync");
|
||||
|
||||
HWND hWnd = NULL;
|
||||
|
||||
|
@ -1515,7 +1510,7 @@ EXPORT_C GSReplay(char* lpszCmdLine, int renderer)
|
|||
|
||||
GSRendererType m_renderer;
|
||||
// Allow to easyly switch between SW/HW renderer -> this effectively removes the ability to select the renderer by function args
|
||||
m_renderer = static_cast<GSRendererType>(theApp.GetConfig("Renderer", static_cast<int>(GSRendererType::Default)));
|
||||
m_renderer = static_cast<GSRendererType>(theApp.GetConfigI("Renderer"));
|
||||
// alternatively:
|
||||
// m_renderer = static_cast<GSRendererType>(renderer);
|
||||
|
||||
|
@ -1537,7 +1532,7 @@ EXPORT_C GSReplay(char* lpszCmdLine, int renderer)
|
|||
|
||||
GSsetBaseMem(regs);
|
||||
|
||||
s_vsync = !!theApp.GetConfig("vsync", 0);
|
||||
s_vsync = theApp.GetConfigB("vsync");
|
||||
|
||||
void* hWnd = NULL;
|
||||
|
||||
|
@ -1635,8 +1630,8 @@ EXPORT_C GSReplay(char* lpszCmdLine, int renderer)
|
|||
|
||||
//while(IsWindowVisible(hWnd))
|
||||
//FIXME map?
|
||||
int finished = theApp.GetConfig("linux_replay", 1);
|
||||
if (theApp.GetConfig("dump", 0)) {
|
||||
int finished = theApp.GetConfigI("linux_replay");
|
||||
if (theApp.GetConfigI("dump")) {
|
||||
fprintf(stderr, "Dump is enabled. Replay will be disabled\n");
|
||||
finished = 1;
|
||||
}
|
||||
|
@ -1706,11 +1701,11 @@ EXPORT_C GSReplay(char* lpszCmdLine, int renderer)
|
|||
}
|
||||
}
|
||||
|
||||
if (theApp.GetConfig("linux_replay", 1) > 1) {
|
||||
if (theApp.GetConfigI("linux_replay") > 1) {
|
||||
// Print some nice stats
|
||||
// Skip first frame (shader compilation populate the result)
|
||||
// it divides by 10 the standard deviation...
|
||||
float n = (float)theApp.GetConfig("linux_replay", 1) - 1.0f;
|
||||
float n = (float)theApp.GetConfigI("linux_replay") - 1.0f;
|
||||
float mean = 0;
|
||||
float sd = 0;
|
||||
for (auto i = stats.begin()+1; i != stats.end(); i++) {
|
||||
|
|
|
@ -231,7 +231,7 @@ enum class GSRendererType : int8_t
|
|||
OGL_OpenCL = 17,
|
||||
|
||||
#ifdef _WIN32
|
||||
Default = DX9_HW
|
||||
Default = DX1011_HW
|
||||
#else
|
||||
// Use ogl renderer as default otherwise it crash at startup
|
||||
// GSRenderOGL only GSDeviceOGL (not GSDeviceNULL)
|
||||
|
@ -1272,9 +1272,6 @@ struct GSFreezeData {int size; uint8* data;};
|
|||
|
||||
enum stateType {ST_WRITE, ST_TRANSFER, ST_VSYNC};
|
||||
|
||||
// default gs config settings
|
||||
#define DEFAULT_EXTRA_RENDERING_THREADS 2
|
||||
|
||||
enum class GSVideoMode : uint8
|
||||
{
|
||||
Unknown,
|
||||
|
|
|
@ -380,10 +380,10 @@ GSCapture::GSCapture()
|
|||
: m_capturing(false), m_frame(0)
|
||||
, m_out_dir("/tmp/GSdx_Capture") // FIXME Later add an option
|
||||
{
|
||||
m_out_dir = theApp.GetConfig("capture_out_dir", "/tmp/GSdx_Capture");
|
||||
m_threads = theApp.GetConfig("capture_threads", 4);
|
||||
m_out_dir = theApp.GetConfigS("capture_out_dir");
|
||||
m_threads = theApp.GetConfigI("capture_threads");
|
||||
#if defined(__unix__)
|
||||
m_compression_level = theApp.GetConfig("png_compression_level", Z_BEST_SPEED);
|
||||
m_compression_level = theApp.GetConfigI("png_compression_level");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -488,8 +488,8 @@ bool GSCapture::BeginCapture(float fps, GSVector2i recomendedResolution, float a
|
|||
// Really cheap recording
|
||||
m_frame = 0;
|
||||
// Add option !!!
|
||||
m_size.x = theApp.GetConfig("capture_resx", 1280);
|
||||
m_size.y = theApp.GetConfig("capture_resy", 1024);
|
||||
m_size.x = theApp.GetConfigI("CaptureWidth");
|
||||
m_size.y = theApp.GetConfigI("CaptureHeight");
|
||||
|
||||
for(int i = 0; i < m_threads; i++) {
|
||||
m_workers.push_back(new GSPng::Worker());
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
GSCaptureDlg::GSCaptureDlg()
|
||||
: GSDialog(IDD_CAPTURE)
|
||||
{
|
||||
m_width = theApp.GetConfig("CaptureWidth", 640);
|
||||
m_height = theApp.GetConfig("CaptureHeight", 480);
|
||||
m_filename = theApp.GetConfig("CaptureFileName", "");
|
||||
m_width = theApp.GetConfigI("CaptureWidth");
|
||||
m_height = theApp.GetConfigI("CaptureHeight");
|
||||
m_filename = theApp.GetConfigS("CaptureFileName");
|
||||
}
|
||||
|
||||
int GSCaptureDlg::GetSelCodec(Codec& c)
|
||||
|
@ -64,7 +64,7 @@ void GSCaptureDlg::OnInit()
|
|||
|
||||
m_codecs.clear();
|
||||
|
||||
_bstr_t selected = theApp.GetConfig("CaptureVideoCodecDisplayName", "").c_str();
|
||||
_bstr_t selected = theApp.GetConfigS("CaptureVideoCodecDisplayName").c_str();
|
||||
|
||||
ComboBoxAppend(IDC_CODECS, "Uncompressed", 0, true);
|
||||
|
||||
|
|
|
@ -538,7 +538,7 @@ CRC::Game CRC::Lookup(uint32 crc)
|
|||
printf("GSdx Lookup CRC:%X\n", crc);
|
||||
if(m_map.empty())
|
||||
{
|
||||
string exclusions = theApp.GetConfig( "CrcHacksExclusions", "" );
|
||||
string exclusions = theApp.GetConfigS("CrcHacksExclusions");
|
||||
if (exclusions.length() != 0)
|
||||
printf( "GSdx: CrcHacksExclusions: %s\n", exclusions.c_str() );
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ bool GSDevice11::Create(GSWnd* wnd)
|
|||
CComPtr<IDXGIAdapter1> adapter;
|
||||
D3D_DRIVER_TYPE driver_type = D3D_DRIVER_TYPE_HARDWARE;
|
||||
|
||||
std::string adapter_id = theApp.GetConfig("Adapter", "default");
|
||||
std::string adapter_id = theApp.GetConfigS("Adapter");
|
||||
|
||||
if (adapter_id == "default")
|
||||
;
|
||||
|
@ -110,7 +110,7 @@ bool GSDevice11::Create(GSWnd* wnd)
|
|||
|
||||
scd.Windowed = TRUE;
|
||||
|
||||
spritehack = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_SpriteHack", 0) : 0;
|
||||
spritehack = theApp.GetConfigB("UserHacks") ? theApp.GetConfigI("UserHacks_SpriteHack") : 0;
|
||||
// NOTE : D3D11_CREATE_DEVICE_SINGLETHREADED
|
||||
// This flag is safe as long as the DXGI's internal message pump is disabled or is on the
|
||||
// same thread as the GS window (which the emulator makes sure of, if it utilizes a
|
||||
|
@ -240,11 +240,11 @@ bool GSDevice11::Create(GSWnd* wnd)
|
|||
CompileShader((const char *)shader.data(), shader.size(), "interlace.fx", nullptr, format("ps_main%d", i).c_str(), nullptr, &m_interlace.ps[i]);
|
||||
}
|
||||
|
||||
// Shade Boost
|
||||
// Shade Boos
|
||||
|
||||
int ShadeBoost_Contrast = theApp.GetConfig("ShadeBoost_Contrast", 50);
|
||||
int ShadeBoost_Brightness = theApp.GetConfig("ShadeBoost_Brightness", 50);
|
||||
int ShadeBoost_Saturation = theApp.GetConfig("ShadeBoost_Saturation", 50);
|
||||
int ShadeBoost_Contrast = theApp.GetConfigI("ShadeBoost_Contrast");
|
||||
int ShadeBoost_Brightness = theApp.GetConfigI("ShadeBoost_Brightness");
|
||||
int ShadeBoost_Saturation = theApp.GetConfigI("ShadeBoost_Saturation");
|
||||
|
||||
string str[3];
|
||||
|
||||
|
@ -314,18 +314,18 @@ bool GSDevice11::Create(GSWnd* wnd)
|
|||
|
||||
memset(&sd, 0, sizeof(sd));
|
||||
|
||||
sd.Filter = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_MIP_LINEAR;
|
||||
sd.Filter = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_MIP_LINEAR;
|
||||
sd.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.MinLOD = -FLT_MAX;
|
||||
sd.MaxLOD = FLT_MAX;
|
||||
sd.MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
sd.MaxAnisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
sd.ComparisonFunc = D3D11_COMPARISON_NEVER;
|
||||
|
||||
hr = m_dev->CreateSamplerState(&sd, &m_convert.ln);
|
||||
|
||||
sd.Filter = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_MIP_POINT;
|
||||
sd.Filter = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_MIP_POINT;
|
||||
|
||||
hr = m_dev->CreateSamplerState(&sd, &m_convert.pt);
|
||||
|
||||
|
@ -367,7 +367,7 @@ bool GSDevice11::Create(GSWnd* wnd)
|
|||
|
||||
if(m_wnd->IsManaged())
|
||||
{
|
||||
SetExclusive(!theApp.GetConfig("windowed", 1));
|
||||
SetExclusive(!theApp.GetConfigB("windowed"));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -758,7 +758,7 @@ void GSDevice11::InitExternalFX()
|
|||
if (!ExShader_Compiled)
|
||||
{
|
||||
try {
|
||||
std::string config_name(theApp.GetConfig("shaderfx_conf", "shaders/GSdx_FX_Settings.ini"));
|
||||
std::string config_name(theApp.GetConfigS("shaderfx_conf"));
|
||||
std::ifstream fconfig(config_name);
|
||||
std::stringstream shader;
|
||||
if (fconfig.good())
|
||||
|
@ -766,7 +766,7 @@ void GSDevice11::InitExternalFX()
|
|||
else
|
||||
fprintf(stderr, "GSdx: External shader config '%s' not loaded.\n", config_name.c_str());
|
||||
|
||||
std::string shader_name(theApp.GetConfig("shaderfx_glsl", "shaders/GSdx.fx"));
|
||||
std::string shader_name(theApp.GetConfigS("shaderfx_glsl"));
|
||||
std::ifstream fshader(shader_name);
|
||||
if (fshader.good())
|
||||
{
|
||||
|
@ -1265,7 +1265,7 @@ void GSDevice11::OMSetRenderTargets(GSTexture* rt, GSTexture* ds, const GSVector
|
|||
GSVector2i size = rt ? rt->GetSize() : ds->GetSize();
|
||||
if(m_state.viewport != size)
|
||||
{
|
||||
bool isNative = theApp.GetConfig("upscale_multiplier", 1) == 1;
|
||||
bool isNative = theApp.GetConfigI("upscale_multiplier") == 1;
|
||||
m_state.viewport = size;
|
||||
|
||||
D3D11_VIEWPORT vp;
|
||||
|
|
|
@ -57,7 +57,7 @@ static void FindAdapter(IDirect3D9 *d3d9, UINT &adapter, D3DDEVTYPE &devtype, st
|
|||
devtype = D3DDEVTYPE_HAL;
|
||||
|
||||
if (!adapter_id.length())
|
||||
adapter_id = theApp.GetConfig("Adapter", "default");
|
||||
adapter_id = theApp.GetConfigS("Adapter");
|
||||
|
||||
if (adapter_id == "default")
|
||||
;
|
||||
|
@ -178,7 +178,7 @@ uint32 GSDevice9::GetMaxDepth(uint32 msaa, std::string adapter_id)
|
|||
|
||||
void GSDevice9::ForceValidMsaaConfig()
|
||||
{
|
||||
if(0 == GetMaxDepth(theApp.GetConfig("UserHacks_MSAA", 0)))
|
||||
if(0 == GetMaxDepth(theApp.GetConfigI("UserHacks_MSAA")))
|
||||
{
|
||||
theApp.SetConfig("UserHacks_MSAA", 0); // replace invalid msaa value in ini file with 0.
|
||||
}
|
||||
|
@ -304,8 +304,8 @@ bool GSDevice9::Create(GSWnd* wnd)
|
|||
|
||||
m_convert.bs.BlendEnable = false;
|
||||
m_convert.bs.RenderTargetWriteMask = D3DCOLORWRITEENABLE_RGBA;
|
||||
D3DTEXTUREFILTERTYPE LinearToAnisotropic = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3DTEXF_ANISOTROPIC : D3DTEXF_LINEAR;
|
||||
D3DTEXTUREFILTERTYPE PointToAnisotropic = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3DTEXF_ANISOTROPIC : D3DTEXF_POINT;
|
||||
D3DTEXTUREFILTERTYPE LinearToAnisotropic = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3DTEXF_ANISOTROPIC : D3DTEXF_LINEAR;
|
||||
D3DTEXTUREFILTERTYPE PointToAnisotropic = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3DTEXF_ANISOTROPIC : D3DTEXF_POINT;
|
||||
|
||||
m_convert.ln.FilterMin[0] = LinearToAnisotropic;
|
||||
m_convert.ln.FilterMag[0] = LinearToAnisotropic;
|
||||
|
@ -313,7 +313,7 @@ bool GSDevice9::Create(GSWnd* wnd)
|
|||
m_convert.ln.FilterMag[1] = LinearToAnisotropic;
|
||||
m_convert.ln.AddressU = D3DTADDRESS_CLAMP;
|
||||
m_convert.ln.AddressV = D3DTADDRESS_CLAMP;
|
||||
m_convert.ln.MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
m_convert.ln.MaxAnisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
|
||||
m_convert.pt.FilterMin[0] = PointToAnisotropic;
|
||||
m_convert.pt.FilterMag[0] = PointToAnisotropic;
|
||||
|
@ -321,7 +321,7 @@ bool GSDevice9::Create(GSWnd* wnd)
|
|||
m_convert.pt.FilterMag[1] = PointToAnisotropic;
|
||||
m_convert.pt.AddressU = D3DTADDRESS_CLAMP;
|
||||
m_convert.pt.AddressV = D3DTADDRESS_CLAMP;
|
||||
m_convert.pt.MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
m_convert.pt.MaxAnisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
|
||||
// merge
|
||||
|
||||
|
@ -350,9 +350,9 @@ bool GSDevice9::Create(GSWnd* wnd)
|
|||
|
||||
// Shade Boost
|
||||
|
||||
int ShadeBoost_Contrast = theApp.GetConfig("ShadeBoost_Contrast", 50);
|
||||
int ShadeBoost_Brightness = theApp.GetConfig("ShadeBoost_Brightness", 50);
|
||||
int ShadeBoost_Saturation = theApp.GetConfig("ShadeBoost_Saturation", 50);
|
||||
int ShadeBoost_Contrast = theApp.GetConfigI("ShadeBoost_Contrast");
|
||||
int ShadeBoost_Brightness = theApp.GetConfigI("ShadeBoost_Brightness");
|
||||
int ShadeBoost_Saturation = theApp.GetConfigI("ShadeBoost_Saturation");
|
||||
|
||||
string str[3];
|
||||
|
||||
|
@ -403,7 +403,7 @@ bool GSDevice9::Reset(int w, int h)
|
|||
|
||||
HRESULT hr;
|
||||
|
||||
int mode = (!m_wnd->IsManaged() || theApp.GetConfig("windowed", 1)) ? Windowed : Fullscreen;
|
||||
int mode = (!m_wnd->IsManaged() || theApp.GetConfigB("windowed")) ? Windowed : Fullscreen;
|
||||
|
||||
if(mode == DontCare)
|
||||
{
|
||||
|
@ -461,9 +461,9 @@ bool GSDevice9::Reset(int w, int h)
|
|||
|
||||
// m_pp.Flags |= D3DPRESENTFLAG_VIDEO; // enables tv-out (but I don't think anyone would still use a regular tv...)
|
||||
|
||||
int mw = theApp.GetConfig("ModeWidth", 0);
|
||||
int mh = theApp.GetConfig("ModeHeight", 0);
|
||||
int mrr = theApp.GetConfig("ModeRefreshRate", 0);
|
||||
int mw = theApp.GetConfigI("ModeWidth");
|
||||
int mh = theApp.GetConfigI("ModeHeight");
|
||||
int mrr = theApp.GetConfigI("ModeRefreshRate");
|
||||
|
||||
if(m_wnd->IsManaged() && mode == Fullscreen && mw > 0 && mh > 0 && mrr >= 0)
|
||||
{
|
||||
|
@ -945,7 +945,7 @@ void GSDevice9::InitExternalFX()
|
|||
if (!ExShader_Compiled)
|
||||
{
|
||||
try {
|
||||
std::string config_name(theApp.GetConfig("shaderfx_conf", "shaders/GSdx_FX_Settings.ini"));
|
||||
std::string config_name(theApp.GetConfigS("shaderfx_conf"));
|
||||
std::ifstream fconfig(config_name);
|
||||
std::stringstream shader;
|
||||
if (fconfig.good())
|
||||
|
@ -953,7 +953,7 @@ void GSDevice9::InitExternalFX()
|
|||
else
|
||||
fprintf(stderr, "GSdx: External shader config '%s' not loaded.\n", config_name.c_str());
|
||||
|
||||
std::string shader_name(theApp.GetConfig("shaderfx_glsl", "shaders/GSdx.fx"));
|
||||
std::string shader_name(theApp.GetConfigS("shaderfx_glsl"));
|
||||
std::ifstream fshader(shader_name);
|
||||
if (fshader.good())
|
||||
{
|
||||
|
|
|
@ -30,7 +30,7 @@ bool GSDeviceDX::s_old_d3d_compiler_dll;
|
|||
|
||||
GSDeviceDX::GSDeviceDX()
|
||||
{
|
||||
m_msaa = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_MSAA", 0) : 0;
|
||||
m_msaa = theApp.GetConfigB("UserHacks") ? theApp.GetConfigI("UserHacks_MSAA") : 0;
|
||||
|
||||
m_msaa_desc.Count = 1;
|
||||
m_msaa_desc.Quality = 0;
|
||||
|
|
|
@ -74,7 +74,7 @@ GSDeviceOGL::GSDeviceOGL()
|
|||
m_debug_gl_file = fopen("GSdx_opengl_debug.txt","w");
|
||||
#endif
|
||||
|
||||
m_debug_gl_call = !!theApp.GetConfig("debug_opengl", 0);
|
||||
m_debug_gl_call = theApp.GetConfigB("debug_opengl");
|
||||
}
|
||||
|
||||
GSDeviceOGL::~GSDeviceOGL()
|
||||
|
@ -180,7 +180,7 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
|||
// Debug helper
|
||||
// ****************************************************************
|
||||
#ifdef ENABLE_OGL_DEBUG
|
||||
if (theApp.GetConfig("debug_opengl", 0)) {
|
||||
if (theApp.GetConfigB("debug_opengl")) {
|
||||
glDebugMessageCallback((GLDEBUGPROC)DebugOutputToFile, NULL);
|
||||
glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
|
||||
|
||||
|
@ -200,7 +200,7 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
|||
{
|
||||
GL_PUSH("GSDeviceOGL::Various");
|
||||
|
||||
m_shader = new GSShaderOGL(!!theApp.GetConfig("debug_glsl_shader", 0));
|
||||
m_shader = new GSShaderOGL(theApp.GetConfigB("debug_glsl_shader"));
|
||||
|
||||
glGenFramebuffers(1, &m_fbo);
|
||||
// Always write to the first buffer
|
||||
|
@ -259,7 +259,7 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
|||
m_convert.cb = new GSUniformBufferOGL(g_convert_index, sizeof(ConvertConstantBuffer));
|
||||
// Upload once and forget about it
|
||||
ConvertConstantBuffer cb;
|
||||
cb.ScalingFactor = GSVector4i(theApp.GetConfig("upscale_multiplier", 1));
|
||||
cb.ScalingFactor = GSVector4i(theApp.GetConfigI("upscale_multiplier"));
|
||||
m_convert.cb->upload(&cb);
|
||||
|
||||
vs = m_shader->Compile("convert.glsl", "vs_main", GL_VERTEX_SHADER, convert_glsl);
|
||||
|
@ -317,9 +317,9 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
|||
{
|
||||
GL_PUSH("GSDeviceOGL::Shadeboost");
|
||||
|
||||
int ShadeBoost_Contrast = theApp.GetConfig("ShadeBoost_Contrast", 50);
|
||||
int ShadeBoost_Brightness = theApp.GetConfig("ShadeBoost_Brightness", 50);
|
||||
int ShadeBoost_Saturation = theApp.GetConfig("ShadeBoost_Saturation", 50);
|
||||
int ShadeBoost_Contrast = theApp.GetConfigI("ShadeBoost_Contrast");
|
||||
int ShadeBoost_Brightness = theApp.GetConfigI("ShadeBoost_Brightness");
|
||||
int ShadeBoost_Saturation = theApp.GetConfigI("ShadeBoost_Saturation");
|
||||
std::string shade_macro = format("#define SB_SATURATION %d.0\n", ShadeBoost_Saturation)
|
||||
+ format("#define SB_BRIGHTNESS %d.0\n", ShadeBoost_Brightness)
|
||||
+ format("#define SB_CONTRAST %d.0\n", ShadeBoost_Contrast);
|
||||
|
@ -687,7 +687,7 @@ GLuint GSDeviceOGL::CreateSampler(bool bilinear, bool tau, bool tav, bool aniso)
|
|||
glSamplerParameterf(sampler, GL_TEXTURE_MIN_LOD, 0);
|
||||
glSamplerParameterf(sampler, GL_TEXTURE_MAX_LOD, 6);
|
||||
|
||||
int anisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
int anisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
if (GLLoader::found_GL_EXT_texture_filter_anisotropic && anisotropy && aniso)
|
||||
glSamplerParameterf(sampler, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)anisotropy);
|
||||
|
||||
|
@ -1264,7 +1264,7 @@ void GSDeviceOGL::DoExternalFX(GSTexture* sTex, GSTexture* dTex)
|
|||
return;
|
||||
}
|
||||
|
||||
std::string config_name(theApp.GetConfig("shaderfx_conf", "dummy.ini"));
|
||||
std::string config_name(theApp.GetConfigS("shaderfx_conf"));
|
||||
std::ifstream fconfig(config_name);
|
||||
std::stringstream config;
|
||||
if (fconfig.good())
|
||||
|
@ -1272,7 +1272,7 @@ void GSDeviceOGL::DoExternalFX(GSTexture* sTex, GSTexture* dTex)
|
|||
else
|
||||
fprintf(stderr, "Warning failed to load '%s'. External Shader might be wrongly configured\n", config_name.c_str());
|
||||
|
||||
std::string shader_name(theApp.GetConfig("shaderfx_glsl", "dummy.glsl"));
|
||||
std::string shader_name(theApp.GetConfigS("shaderfx_glsl"));
|
||||
std::ifstream fshader(shader_name);
|
||||
std::stringstream shader;
|
||||
if (!fshader.good()) {
|
||||
|
|
|
@ -2435,7 +2435,7 @@ void GSState::SetupCrcHack()
|
|||
{
|
||||
GetSkipCount lut[CRC::TitleCount];
|
||||
|
||||
s_crc_hack_level = theApp.GetConfig("crc_hack_level", 3);
|
||||
s_crc_hack_level = theApp.GetConfigI("crc_hack_level");
|
||||
|
||||
memset(lut, 0, sizeof(lut));
|
||||
|
||||
|
|
|
@ -59,10 +59,10 @@ void CB_ChangedComboBox(GtkComboBox *combo, gpointer user_data)
|
|||
}
|
||||
}
|
||||
|
||||
GtkWidget* CreateComboBoxFromVector(const vector<GSSetting>& s, const char* opt_name, int32_t opt_default = 0)
|
||||
GtkWidget* CreateComboBoxFromVector(const vector<GSSetting>& s, const char* opt_name)
|
||||
{
|
||||
GtkWidget* combo_box = gtk_combo_box_text_new();
|
||||
int32_t opt_value = theApp.GetConfig(opt_name, opt_default);
|
||||
int32_t opt_value = theApp.GetConfigI(opt_name);
|
||||
int opt_position = 0;
|
||||
|
||||
for(size_t i = 0; i < s.size(); i++)
|
||||
|
@ -102,10 +102,10 @@ void CB_EntryActived(GtkEntry *entry, gpointer user_data)
|
|||
theApp.SetConfig((char*)user_data, hex_value);
|
||||
}
|
||||
|
||||
GtkWidget* CreateTextBox(const char* opt_name, int opt_default = 0) {
|
||||
GtkWidget* CreateTextBox(const char* opt_name) {
|
||||
GtkWidget* entry = gtk_entry_new();
|
||||
|
||||
int hex_value = theApp.GetConfig(opt_name, opt_default);
|
||||
int hex_value = theApp.GetConfigI(opt_name);
|
||||
|
||||
gchar* data=(gchar *)g_malloc(sizeof(gchar)*40);
|
||||
sprintf(data,"%X", hex_value);
|
||||
|
@ -124,11 +124,11 @@ void CB_ToggleCheckBox(GtkToggleButton *togglebutton, gpointer user_data)
|
|||
theApp.SetConfig((char*)user_data, (int)gtk_toggle_button_get_active(togglebutton));
|
||||
}
|
||||
|
||||
GtkWidget* CreateCheckBox(const char* label, const char* opt_name, bool opt_default = false)
|
||||
GtkWidget* CreateCheckBox(const char* label, const char* opt_name)
|
||||
{
|
||||
GtkWidget* check = gtk_check_button_new_with_label(label);
|
||||
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), theApp.GetConfig(opt_name, opt_default));
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), theApp.GetConfigB(opt_name));
|
||||
|
||||
g_signal_connect(check, "toggled", G_CALLBACK(CB_ToggleCheckBox), const_cast<char*>(opt_name));
|
||||
|
||||
|
@ -140,11 +140,11 @@ void CB_SpinButton(GtkSpinButton *spin, gpointer user_data)
|
|||
theApp.SetConfig((char*)user_data, (int)gtk_spin_button_get_value(spin));
|
||||
}
|
||||
|
||||
GtkWidget* CreateSpinButton(double min, double max, const char* opt_name, int opt_default = 0)
|
||||
GtkWidget* CreateSpinButton(double min, double max, const char* opt_name)
|
||||
{
|
||||
GtkWidget* spin = gtk_spin_button_new_with_range(min, max, 1);
|
||||
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), theApp.GetConfig(opt_name, opt_default));
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), theApp.GetConfigI(opt_name));
|
||||
|
||||
g_signal_connect(spin, "value-changed", G_CALLBACK(CB_SpinButton), const_cast<char*>(opt_name));
|
||||
|
||||
|
@ -156,7 +156,7 @@ void CB_RangeChanged(GtkRange* range, gpointer user_data)
|
|||
theApp.SetConfig((char*)user_data, (int)gtk_range_get_value(range));
|
||||
}
|
||||
|
||||
GtkWidget* CreateScale(const char* opt_name, int opt_default = 0)
|
||||
GtkWidget* CreateScale(const char* opt_name)
|
||||
{
|
||||
#if GTK_MAJOR_VERSION < 3
|
||||
GtkWidget* scale = gtk_hscale_new_with_range(0, 200, 10);
|
||||
|
@ -165,7 +165,7 @@ GtkWidget* CreateScale(const char* opt_name, int opt_default = 0)
|
|||
#endif
|
||||
|
||||
gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_RIGHT);
|
||||
gtk_range_set_value(GTK_RANGE(scale), theApp.GetConfig(opt_name, opt_default));
|
||||
gtk_range_set_value(GTK_RANGE(scale), theApp.GetConfigI(opt_name));
|
||||
|
||||
g_signal_connect(scale, "value-changed", G_CALLBACK(CB_RangeChanged), const_cast<char*>(opt_name));
|
||||
|
||||
|
@ -177,11 +177,11 @@ void CB_PickFile(GtkFileChooserButton *chooser, gpointer user_data)
|
|||
theApp.SetConfig((char*)user_data, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)));
|
||||
}
|
||||
|
||||
GtkWidget* CreateFileChooser(GtkFileChooserAction action, const char* label, const char* opt_name, const char* opt_default)
|
||||
GtkWidget* CreateFileChooser(GtkFileChooserAction action, const char* label, const char* opt_name)
|
||||
{
|
||||
GtkWidget* chooser = gtk_file_chooser_button_new(label, action);
|
||||
|
||||
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(chooser), theApp.GetConfig(opt_name, opt_default).c_str());
|
||||
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(chooser), theApp.GetConfigS(opt_name).c_str());
|
||||
|
||||
g_signal_connect(chooser, "file-set", G_CALLBACK(CB_PickFile), const_cast<char*>(opt_name));
|
||||
|
||||
|
@ -222,23 +222,23 @@ GtkWidget* CreateTableInBox(GtkWidget* parent_box, const char* frame_title, int
|
|||
void populate_hw_table(GtkWidget* hw_table)
|
||||
{
|
||||
GtkWidget* filter_label = left_label("Texture Filtering:");
|
||||
GtkWidget* filter_combo_box = CreateComboBoxFromVector(theApp.m_gs_filter, "filter", 2);
|
||||
GtkWidget* filter_combo_box = CreateComboBoxFromVector(theApp.m_gs_filter, "filter");
|
||||
|
||||
GtkWidget* fsaa_label = left_label("Internal Resolution:");
|
||||
GtkWidget* fsaa_combo_box = CreateComboBoxFromVector(theApp.m_gs_upscale_multiplier, "upscale_multiplier", 1);
|
||||
GtkWidget* fsaa_combo_box = CreateComboBoxFromVector(theApp.m_gs_upscale_multiplier, "upscale_multiplier");
|
||||
|
||||
GtkWidget* af_label = left_label("Anisotropic Filtering:");
|
||||
GtkWidget* af_combo_box = CreateComboBoxFromVector(theApp.m_gs_max_anisotropy, "MaxAnisotropy", 0);
|
||||
GtkWidget* af_combo_box = CreateComboBoxFromVector(theApp.m_gs_max_anisotropy, "MaxAnisotropy");
|
||||
|
||||
GtkWidget* crc_label = left_label("Automatic CRC level:");
|
||||
GtkWidget* crc_combo_box = CreateComboBoxFromVector(theApp.m_gs_crc_level, "crc_hack_level", 3);
|
||||
GtkWidget* crc_combo_box = CreateComboBoxFromVector(theApp.m_gs_crc_level, "crc_hack_level");
|
||||
|
||||
GtkWidget* paltex_check = CreateCheckBox("Allow 8 bits textures", "paltex");
|
||||
GtkWidget* acc_date_check = CreateCheckBox("Accurate Date", "accurate_date", false);
|
||||
GtkWidget* large_fb_check = CreateCheckBox("Large Framebuffer", "large_framebuffer", true);
|
||||
GtkWidget* acc_date_check = CreateCheckBox("Accurate Date", "accurate_date");
|
||||
GtkWidget* large_fb_check = CreateCheckBox("Large Framebuffer", "large_framebuffer");
|
||||
|
||||
GtkWidget* acc_bld_label = left_label("Blending Unit Accuracy:");
|
||||
GtkWidget* acc_bld_combo_box = CreateComboBoxFromVector(theApp.m_gs_acc_blend_level, "accurate_blending_unit", 1);
|
||||
GtkWidget* acc_bld_combo_box = CreateComboBoxFromVector(theApp.m_gs_acc_blend_level, "accurate_blending_unit");
|
||||
|
||||
// Some helper string
|
||||
AddTooltip(paltex_check, IDC_PALTEX);
|
||||
|
@ -262,9 +262,9 @@ void populate_hw_table(GtkWidget* hw_table)
|
|||
void populate_gl_table(GtkWidget* gl_table)
|
||||
{
|
||||
GtkWidget* gl_gs_label = left_label("Geometry Shader:");
|
||||
GtkWidget* gl_gs_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_geometry_shader", -1);
|
||||
GtkWidget* gl_gs_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_geometry_shader");
|
||||
GtkWidget* gl_ils_label = left_label("Image Load Store:");
|
||||
GtkWidget* gl_ils_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_shader_image_load_store", -1);
|
||||
GtkWidget* gl_ils_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_shader_image_load_store");
|
||||
|
||||
s_table_line = 0;
|
||||
InsertWidgetInTable(gl_table , gl_gs_label , gl_gs_combo);
|
||||
|
@ -274,10 +274,10 @@ void populate_gl_table(GtkWidget* gl_table)
|
|||
void populate_sw_table(GtkWidget* sw_table)
|
||||
{
|
||||
GtkWidget* threads_label = left_label("Extra rendering threads:");
|
||||
GtkWidget* threads_spin = CreateSpinButton(0, 32, "extrathreads", DEFAULT_EXTRA_RENDERING_THREADS);
|
||||
GtkWidget* threads_spin = CreateSpinButton(0, 32, "extrathreads");
|
||||
|
||||
GtkWidget* aa_check = CreateCheckBox("Edge anti-aliasing (AA1)", "aa1");
|
||||
GtkWidget* mipmap_check = CreateCheckBox("Mipmap", "mipmap", true);
|
||||
GtkWidget* mipmap_check = CreateCheckBox("Mipmap", "mipmap");
|
||||
|
||||
AddTooltip(aa_check, IDC_AA1);
|
||||
AddTooltip(mipmap_check, IDC_MIPMAP);
|
||||
|
@ -290,8 +290,8 @@ void populate_sw_table(GtkWidget* sw_table)
|
|||
|
||||
void populate_shader_table(GtkWidget* shader_table)
|
||||
{
|
||||
GtkWidget* shader = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_OPEN, "Select an external shader", "shaderfx_glsl", "dummy.glsl");
|
||||
GtkWidget* shader_conf = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_OPEN, "Then select a config", "shaderfx_conf", "dummy.ini");
|
||||
GtkWidget* shader = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_OPEN, "Select an external shader", "shaderfx_glsl");
|
||||
GtkWidget* shader_conf = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_OPEN, "Then select a config", "shaderfx_conf");
|
||||
GtkWidget* shader_label = left_label("External shader glsl");
|
||||
GtkWidget* shader_conf_label = left_label("External shader conf");
|
||||
|
||||
|
@ -303,13 +303,13 @@ void populate_shader_table(GtkWidget* shader_table)
|
|||
GtkWidget* tv_shader = CreateComboBoxFromVector(theApp.m_gs_tv_shaders, "TVShader");
|
||||
|
||||
// Shadeboost scale
|
||||
GtkWidget* sb_brightness = CreateScale("ShadeBoost_Brightness", 50);
|
||||
GtkWidget* sb_brightness = CreateScale("ShadeBoost_Brightness");
|
||||
GtkWidget* sb_brightness_label = left_label("Shade Boost Brightness:");
|
||||
|
||||
GtkWidget* sb_contrast = CreateScale("ShadeBoost_Contrast", 50);
|
||||
GtkWidget* sb_contrast = CreateScale("ShadeBoost_Contrast");
|
||||
GtkWidget* sb_contrast_label = left_label("Shade Boost Contrast:");
|
||||
|
||||
GtkWidget* sb_saturation = CreateScale("ShadeBoost_Saturation", 50);
|
||||
GtkWidget* sb_saturation = CreateScale("ShadeBoost_Saturation");
|
||||
GtkWidget* sb_saturation_label = left_label("Shade Boost Saturation:");
|
||||
|
||||
AddTooltip(shadeboost_check, IDC_SHADEBOOST);
|
||||
|
@ -380,9 +380,9 @@ void populate_hack_table(GtkWidget* hack_table)
|
|||
void populate_main_table(GtkWidget* main_table)
|
||||
{
|
||||
GtkWidget* render_label = left_label("Renderer:");
|
||||
GtkWidget* render_combo_box = CreateComboBoxFromVector(theApp.m_gs_renderers, "Renderer", static_cast<int>(GSRendererType::Default));
|
||||
GtkWidget* render_combo_box = CreateComboBoxFromVector(theApp.m_gs_renderers, "Renderer");
|
||||
GtkWidget* interlace_label = left_label("Interlacing (F5):");
|
||||
GtkWidget* interlace_combo_box = CreateComboBoxFromVector(theApp.m_gs_interlace, "interlace", 7);
|
||||
GtkWidget* interlace_combo_box = CreateComboBoxFromVector(theApp.m_gs_interlace, "interlace");
|
||||
|
||||
s_table_line = 0;
|
||||
InsertWidgetInTable(main_table, render_label, render_combo_box);
|
||||
|
@ -417,14 +417,14 @@ void populate_record_table(GtkWidget* record_table)
|
|||
{
|
||||
GtkWidget* capture_check = CreateCheckBox("Enable Recording (with F12)", "capture_enabled");
|
||||
GtkWidget* resxy_label = left_label("Resolution:");
|
||||
GtkWidget* resx_spin = CreateSpinButton(256, 8192, "capture_resx", 1280);
|
||||
GtkWidget* resy_spin = CreateSpinButton(256, 8192, "capture_resy", 1024);
|
||||
GtkWidget* resx_spin = CreateSpinButton(256, 8192, "CaptureWidth");
|
||||
GtkWidget* resy_spin = CreateSpinButton(256, 8192, "CaptureHeight");
|
||||
GtkWidget* threads_label = left_label("Saving Threads:");
|
||||
GtkWidget* threads_spin = CreateSpinButton(1, 32, "capture_threads", 4);
|
||||
GtkWidget* threads_spin = CreateSpinButton(1, 32, "capture_threads");
|
||||
GtkWidget* out_dir_label = left_label("Output Directory:");
|
||||
GtkWidget* out_dir = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, "Select a directory", "capture_out_dir", "/tmp");
|
||||
GtkWidget* out_dir = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, "Select a directory", "capture_out_dir");
|
||||
GtkWidget* png_label = left_label("PNG Compression Level:");
|
||||
GtkWidget* png_level = CreateSpinButton(1, 9, "png_compression_level", 1);
|
||||
GtkWidget* png_level = CreateSpinButton(1, 9, "png_compression_level");
|
||||
|
||||
InsertWidgetInTable(record_table , capture_check);
|
||||
InsertWidgetInTable(record_table , resxy_label , resx_spin , resy_spin);
|
||||
|
@ -498,8 +498,8 @@ bool RunLinuxDialog()
|
|||
return_value = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||
|
||||
// Compatibility & not supported option
|
||||
int mode_width = theApp.GetConfig("ModeWidth", 640);
|
||||
int mode_height = theApp.GetConfig("ModeHeight", 480);
|
||||
int mode_width = theApp.GetConfigI("ModeWidth");
|
||||
int mode_height = theApp.GetConfigI("ModeHeight");
|
||||
theApp.SetConfig("ModeHeight", mode_height);
|
||||
theApp.SetConfig("ModeWidth", mode_width);
|
||||
theApp.SetConfig("msaa", 0);
|
||||
|
|
|
@ -40,15 +40,15 @@ GSRenderer::GSRenderer()
|
|||
{
|
||||
m_GStitleInfoBuffer[0] = 0;
|
||||
|
||||
m_interlace = theApp.GetConfig("interlace", 7) % s_interlace_nb;
|
||||
m_aspectratio = theApp.GetConfig("aspectratio", 1) % s_aspect_ratio_nb;
|
||||
m_shader = theApp.GetConfig("TVShader", 0) % s_post_shader_nb;
|
||||
m_filter = theApp.GetConfig("filter", 1);
|
||||
m_vsync = !!theApp.GetConfig("vsync", 0);
|
||||
m_aa1 = !!theApp.GetConfig("aa1", 0);
|
||||
m_fxaa = !!theApp.GetConfig("fxaa", 0);
|
||||
m_shaderfx = !!theApp.GetConfig("shaderfx", 0);
|
||||
m_shadeboost = !!theApp.GetConfig("ShadeBoost", 0);
|
||||
m_interlace = theApp.GetConfigI("interlace") % s_interlace_nb;
|
||||
m_aspectratio = theApp.GetConfigI("AspectRatio") % s_aspect_ratio_nb;
|
||||
m_shader = theApp.GetConfigI("TVShader") % s_post_shader_nb;
|
||||
m_filter = theApp.GetConfigI("filter");
|
||||
m_vsync = theApp.GetConfigB("vsync");
|
||||
m_aa1 = theApp.GetConfigB("aa1");
|
||||
m_fxaa = theApp.GetConfigB("fxaa");
|
||||
m_shaderfx = theApp.GetConfigB("shaderfx");
|
||||
m_shadeboost = theApp.GetConfigB("ShadeBoost");
|
||||
}
|
||||
|
||||
GSRenderer::~GSRenderer()
|
||||
|
|
|
@ -1870,7 +1870,7 @@ GSRendererCL::CL::CL()
|
|||
WIs = INT_MAX;
|
||||
version = INT_MAX;
|
||||
|
||||
std::string ocldev = theApp.GetConfig("ocldev", "");
|
||||
std::string ocldev = theApp.GetConfigS("ocldev");
|
||||
|
||||
#ifdef IOCL_DEBUG
|
||||
ocldev = "Intel(R) Corporation Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz OpenCL C 1.2 CPU";
|
||||
|
|
|
@ -103,7 +103,7 @@ bool GSRendererCS::CreateDevice(GSDevice* dev_unk)
|
|||
sd.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.MinLOD = -FLT_MAX;
|
||||
sd.MaxLOD = FLT_MAX;
|
||||
sd.MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
sd.MaxAnisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
sd.ComparisonFunc = D3D11_COMPARISON_NEVER;
|
||||
|
||||
hr = (*dev)->CreateSamplerState(&sd, &m_ss);
|
||||
|
|
|
@ -27,13 +27,19 @@ GSRendererDX::GSRendererDX(GSTextureCache* tc, const GSVector2& pixelcenter)
|
|||
: GSRendererHW(tc)
|
||||
, m_pixelcenter(pixelcenter)
|
||||
{
|
||||
m_logz = !!theApp.GetConfig("logz", 0);
|
||||
m_fba = !!theApp.GetConfig("fba", 1);
|
||||
m_logz = theApp.GetConfigB("logz");
|
||||
m_fba = theApp.GetConfigB("fba");
|
||||
|
||||
UserHacks_AlphaHack = !!theApp.GetConfig("UserHacks_AlphaHack", 0) && !!theApp.GetConfig("UserHacks", 0);
|
||||
UserHacks_AlphaStencil = !!theApp.GetConfig("UserHacks_AlphaStencil", 0) && !!theApp.GetConfig("UserHacks", 0);
|
||||
if (theApp.GetConfigB("UserHacks")) {
|
||||
UserHacks_AlphaHack = theApp.GetConfigB("UserHacks_AlphaHack");
|
||||
UserHacks_AlphaStencil = theApp.GetConfigB("UserHacks_AlphaStencil");
|
||||
UserHacks_TCOffset = theApp.GetConfigI("UserHacks_TCOffset");
|
||||
} else {
|
||||
UserHacks_AlphaHack = false;
|
||||
UserHacks_AlphaStencil = false;
|
||||
UserHacks_TCOffset = 0;
|
||||
}
|
||||
|
||||
UserHacks_TCOffset = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_TCOffset", 0) : 0;
|
||||
UserHacks_TCO_x = (UserHacks_TCOffset & 0xFFFF) / -1000.0f;
|
||||
UserHacks_TCO_y = ((UserHacks_TCOffset >> 16) & 0xFFFF) / -1000.0f;
|
||||
}
|
||||
|
|
|
@ -31,20 +31,26 @@ GSRendererHW::GSRendererHW(GSTextureCache* tc)
|
|||
, m_channel_shuffle(false)
|
||||
, m_double_downscale(false)
|
||||
{
|
||||
m_upscale_multiplier = theApp.GetConfig("upscale_multiplier", 1);
|
||||
m_large_framebuffer = !!theApp.GetConfig("large_framebuffer", 1);
|
||||
m_userhacks_align_sprite_X = !!theApp.GetConfig("UserHacks_align_sprite_X", 0) && !!theApp.GetConfig("UserHacks", 0);
|
||||
m_userhacks_round_sprite_offset = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_round_sprite_offset", 0) : 0;
|
||||
m_userhacks_disable_gs_mem_clear = theApp.GetConfig("UserHacks_DisableGsMemClear", 0) && theApp.GetConfig("UserHacks", 0);
|
||||
m_upscale_multiplier = theApp.GetConfigI("upscale_multiplier");
|
||||
m_large_framebuffer = theApp.GetConfigI("large_framebuffer");
|
||||
if (theApp.GetConfigB("UserHacks")) {
|
||||
m_userhacks_align_sprite_X = theApp.GetConfigB("UserHacks_align_sprite_X");
|
||||
m_userhacks_round_sprite_offset = theApp.GetConfigI("UserHacks_round_sprite_offset");
|
||||
m_userhacks_disable_gs_mem_clear = theApp.GetConfigB("UserHacks_DisableGsMemClear");
|
||||
} else {
|
||||
m_userhacks_align_sprite_X = false;
|
||||
m_userhacks_round_sprite_offset = 0;
|
||||
m_userhacks_disable_gs_mem_clear = false;
|
||||
}
|
||||
|
||||
if (!m_upscale_multiplier) { //Custom Resolution
|
||||
m_width = theApp.GetConfig("resx", m_width);
|
||||
m_height = theApp.GetConfig("resy", m_height);
|
||||
m_width = theApp.GetConfigI("resx");
|
||||
m_height = theApp.GetConfigI("resy");
|
||||
}
|
||||
|
||||
if (m_upscale_multiplier == 1) { // hacks are only needed for upscaling issues.
|
||||
m_userhacks_round_sprite_offset = 0;
|
||||
m_userhacks_align_sprite_X = 0;
|
||||
m_userhacks_align_sprite_X = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -749,8 +755,8 @@ GSRendererHW::Hacks::Hacks()
|
|||
, m_oo(NULL)
|
||||
, m_cu(NULL)
|
||||
{
|
||||
bool is_opengl = (static_cast<GSRendererType>(theApp.GetConfig("Renderer", static_cast<int>(GSRendererType::Default))) == GSRendererType::OGL_HW);
|
||||
bool can_handle_depth = (!theApp.GetConfig("UserHacks", 0) || !theApp.GetConfig("UserHacks_DisableDepthSupport", 0)) && is_opengl;
|
||||
bool is_opengl = (static_cast<GSRendererType>(theApp.GetConfigI("Renderer")) == GSRendererType::OGL_HW);
|
||||
bool can_handle_depth = (!theApp.GetConfigB("UserHacks") || !theApp.GetConfigB("UserHacks_DisableDepthSupport")) && is_opengl;
|
||||
|
||||
m_oi_list.push_back(HackEntry<OI_Ptr>(CRC::FFXII, CRC::EU, &GSRendererHW::OI_FFXII));
|
||||
m_oi_list.push_back(HackEntry<OI_Ptr>(CRC::FFX, CRC::RegionCount, &GSRendererHW::OI_FFX));
|
||||
|
@ -796,7 +802,7 @@ void GSRendererHW::Hacks::SetGameCRC(const CRC::Game& game)
|
|||
m_oi = &GSRendererHW::OI_PointListPalette;
|
||||
}
|
||||
|
||||
bool hack = theApp.GetConfig("UserHacks_ColorDepthClearOverlap", 0) && theApp.GetConfig("UserHacks", 0);
|
||||
bool hack = theApp.GetConfigB("UserHacks_ColorDepthClearOverlap") && theApp.GetConfigB("UserHacks");
|
||||
if (hack && !m_oi) {
|
||||
// FIXME: Enable this code in the future. I think it could replace
|
||||
// most of the "old" OI hack. So far code was tested on GoW2 & SimpsonsGame with
|
||||
|
|
|
@ -27,23 +27,23 @@
|
|||
GSRendererOGL::GSRendererOGL()
|
||||
: GSRendererHW(new GSTextureCacheOGL(this))
|
||||
{
|
||||
m_accurate_date = !!theApp.GetConfig("accurate_date", 0);
|
||||
m_accurate_date = theApp.GetConfigB("accurate_date");
|
||||
|
||||
m_sw_blending = theApp.GetConfig("accurate_blending_unit", 1);
|
||||
m_sw_blending = theApp.GetConfigI("accurate_blending_unit");
|
||||
|
||||
// Hope nothing requires too many draw calls.
|
||||
m_drawlist.reserve(2048);
|
||||
|
||||
UserHacks_TCOffset = theApp.GetConfig("UserHacks_TCOffset", 0);
|
||||
UserHacks_TCOffset = theApp.GetConfigI("UserHacks_TCOffset");
|
||||
UserHacks_TCO_x = (UserHacks_TCOffset & 0xFFFF) / -1000.0f;
|
||||
UserHacks_TCO_y = ((UserHacks_TCOffset >> 16) & 0xFFFF) / -1000.0f;
|
||||
UserHacks_safe_fbmask = !!theApp.GetConfig("UserHacks_safe_fbmask", 0);
|
||||
UserHacks_merge_sprite = !!theApp.GetConfig("UserHacks_merge_pp_sprite", 0);
|
||||
UserHacks_safe_fbmask = theApp.GetConfigB("UserHacks_safe_fbmask");
|
||||
UserHacks_merge_sprite = theApp.GetConfigB("UserHacks_merge_pp_sprite");
|
||||
|
||||
m_prim_overlap = PRIM_OVERLAP_UNKNOW;
|
||||
m_unsafe_fbmask = false;
|
||||
|
||||
if (!theApp.GetConfig("UserHacks", 0)) {
|
||||
if (!theApp.GetConfigB("UserHacks")) {
|
||||
UserHacks_TCOffset = 0;
|
||||
UserHacks_TCO_x = 0;
|
||||
UserHacks_TCO_y = 0;
|
||||
|
|
|
@ -115,7 +115,7 @@ void GSSettingsDlg::OnInit()
|
|||
}
|
||||
}
|
||||
|
||||
std::string adapter_setting = theApp.GetConfig("Adapter", "default");
|
||||
std::string adapter_setting = theApp.GetConfigS("Adapter");
|
||||
vector<GSSetting> adapter_settings;
|
||||
unsigned int adapter_sel = 0;
|
||||
|
||||
|
@ -129,7 +129,7 @@ void GSSettingsDlg::OnInit()
|
|||
adapter_settings.push_back(GSSetting(i, adapters[i].name.c_str(), ""));
|
||||
}
|
||||
|
||||
std::string ocldev = theApp.GetConfig("ocldev", "");
|
||||
std::string ocldev = theApp.GetConfigS("ocldev");
|
||||
|
||||
unsigned int ocl_sel = 0;
|
||||
|
||||
|
@ -147,32 +147,32 @@ void GSSettingsDlg::OnInit()
|
|||
ComboBoxInit(IDC_OPENCL_DEVICE, m_ocl_devs, ocl_sel);
|
||||
UpdateRenderers();
|
||||
|
||||
ComboBoxInit(IDC_INTERLACE, theApp.m_gs_interlace, theApp.GetConfig("Interlace", 7)); // 7 = "auto", detects interlace based on SMODE2 register
|
||||
ComboBoxInit(IDC_UPSCALE_MULTIPLIER, theApp.m_gs_upscale_multiplier, theApp.GetConfig("upscale_multiplier", 1));
|
||||
ComboBoxInit(IDC_AFCOMBO, theApp.m_gs_max_anisotropy, theApp.GetConfig("MaxAnisotropy", 0));
|
||||
ComboBoxInit(IDC_FILTER, theApp.m_gs_filter, theApp.GetConfig("filter", 2));
|
||||
ComboBoxInit(IDC_ACCURATE_BLEND_UNIT, theApp.m_gs_acc_blend_level, theApp.GetConfig("accurate_blending_unit", 1));
|
||||
ComboBoxInit(IDC_CRC_LEVEL, theApp.m_gs_crc_level, theApp.GetConfig("crc_hack_level", 3));
|
||||
ComboBoxInit(IDC_INTERLACE, theApp.m_gs_interlace, theApp.GetConfigI("Interlace"));
|
||||
ComboBoxInit(IDC_UPSCALE_MULTIPLIER, theApp.m_gs_upscale_multiplier, theApp.GetConfigI("upscale_multiplier"));
|
||||
ComboBoxInit(IDC_AFCOMBO, theApp.m_gs_max_anisotropy, theApp.GetConfigI("MaxAnisotropy"));
|
||||
ComboBoxInit(IDC_FILTER, theApp.m_gs_filter, theApp.GetConfigI("filter"));
|
||||
ComboBoxInit(IDC_ACCURATE_BLEND_UNIT, theApp.m_gs_acc_blend_level, theApp.GetConfigI("accurate_blending_unit"));
|
||||
ComboBoxInit(IDC_CRC_LEVEL, theApp.m_gs_crc_level, theApp.GetConfigI("crc_hack_level"));
|
||||
|
||||
CheckDlgButton(m_hWnd, IDC_PALTEX, theApp.GetConfig("paltex", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_LARGE_FB, theApp.GetConfig("large_framebuffer", 1));
|
||||
CheckDlgButton(m_hWnd, IDC_LOGZ, theApp.GetConfig("logz", 1));
|
||||
CheckDlgButton(m_hWnd, IDC_FBA, theApp.GetConfig("fba", 1));
|
||||
CheckDlgButton(m_hWnd, IDC_AA1, theApp.GetConfig("aa1", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_MIPMAP, theApp.GetConfig("mipmap", 1));
|
||||
CheckDlgButton(m_hWnd, IDC_ACCURATE_DATE, theApp.GetConfig("accurate_date", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_PALTEX, theApp.GetConfigB("paltex"));
|
||||
CheckDlgButton(m_hWnd, IDC_LARGE_FB, theApp.GetConfigB("large_framebuffer"));
|
||||
CheckDlgButton(m_hWnd, IDC_LOGZ, theApp.GetConfigB("logz"));
|
||||
CheckDlgButton(m_hWnd, IDC_FBA, theApp.GetConfigB("fba"));
|
||||
CheckDlgButton(m_hWnd, IDC_AA1, theApp.GetConfigB("aa1"));
|
||||
CheckDlgButton(m_hWnd, IDC_MIPMAP, theApp.GetConfigB("mipmap"));
|
||||
CheckDlgButton(m_hWnd, IDC_ACCURATE_DATE, theApp.GetConfigB("accurate_date"));
|
||||
|
||||
// Hacks
|
||||
CheckDlgButton(m_hWnd, IDC_HACKS_ENABLED, theApp.GetConfig("UserHacks", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_HACKS_ENABLED, theApp.GetConfigB("UserHacks"));
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_RESX), UDM_SETRANGE, 0, MAKELPARAM(8192, 256));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_RESX), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("resx", 1024), 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_RESX), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfigI("resx"), 0));
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_RESY), UDM_SETRANGE, 0, MAKELPARAM(8192, 256));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_RESY), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("resy", 1024), 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_RESY), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfigI("resy"), 0));
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SWTHREADS), UDM_SETRANGE, 0, MAKELPARAM(16, 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SWTHREADS), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("extrathreads", DEFAULT_EXTRA_RENDERING_THREADS), 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SWTHREADS), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfigI("extrathreads"), 0));
|
||||
|
||||
AddTooltip(IDC_FILTER);
|
||||
AddTooltip(IDC_CRC_LEVEL);
|
||||
|
@ -316,8 +316,8 @@ void GSSettingsDlg::UpdateRenderers()
|
|||
}
|
||||
else
|
||||
{
|
||||
GSRendererType best_renderer = (level >= D3D_FEATURE_LEVEL_10_0) ? GSRendererType::DX1011_HW : GSRendererType::DX9_HW;
|
||||
renderer_setting = static_cast<GSRendererType>(theApp.GetConfig("Renderer", static_cast<int>(best_renderer)));
|
||||
//GSRendererType best_renderer = (level >= D3D_FEATURE_LEVEL_10_0) ? GSRendererType::DX1011_HW : GSRendererType::DX9_HW;
|
||||
renderer_setting = static_cast<GSRendererType>(theApp.GetConfigI("Renderer"));
|
||||
}
|
||||
|
||||
GSRendererType renderer_sel = GSRendererType::Default;
|
||||
|
@ -438,21 +438,21 @@ GSShaderDlg::GSShaderDlg() :
|
|||
void GSShaderDlg::OnInit()
|
||||
{
|
||||
//TV Shader
|
||||
ComboBoxInit(IDC_TVSHADER, theApp.m_gs_tv_shaders, theApp.GetConfig("TVshader", 0));
|
||||
ComboBoxInit(IDC_TVSHADER, theApp.m_gs_tv_shaders, theApp.GetConfigI("TVshader"));
|
||||
|
||||
//Shade Boost
|
||||
CheckDlgButton(m_hWnd, IDC_SHADEBOOST, theApp.GetConfig("ShadeBoost", 0));
|
||||
contrast = theApp.GetConfig("ShadeBoost_Contrast", 50);
|
||||
brightness = theApp.GetConfig("ShadeBoost_Brightness", 50);
|
||||
saturation = theApp.GetConfig("ShadeBoost_Saturation", 50);
|
||||
CheckDlgButton(m_hWnd, IDC_SHADEBOOST, theApp.GetConfigB("ShadeBoost"));
|
||||
contrast = theApp.GetConfigI("ShadeBoost_Contrast");
|
||||
brightness = theApp.GetConfigI("ShadeBoost_Brightness");
|
||||
saturation = theApp.GetConfigI("ShadeBoost_Saturation");
|
||||
|
||||
// External FX shader
|
||||
CheckDlgButton(m_hWnd, IDC_SHADER_FX, theApp.GetConfig("shaderfx", 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SHADER_FX_EDIT), WM_SETTEXT, 0, (LPARAM)theApp.GetConfig("shaderfx_glsl", "shaders\\GSdx.fx").c_str());
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SHADER_FX_CONF_EDIT), WM_SETTEXT, 0, (LPARAM)theApp.GetConfig("shaderfx_conf", "shaders\\GSdx_FX_Settings.ini").c_str());
|
||||
CheckDlgButton(m_hWnd, IDC_SHADER_FX, theApp.GetConfigB("shaderfx"));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SHADER_FX_EDIT), WM_SETTEXT, 0, (LPARAM)theApp.GetConfigS("shaderfx_glsl").c_str());
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SHADER_FX_CONF_EDIT), WM_SETTEXT, 0, (LPARAM)theApp.GetConfigS("shaderfx_conf").c_str());
|
||||
|
||||
// FXAA shader
|
||||
CheckDlgButton(m_hWnd, IDC_FXAA, theApp.GetConfig("Fxaa", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_FXAA, theApp.GetConfigB("fxaa"));
|
||||
|
||||
AddTooltip(IDC_SHADEBOOST);
|
||||
AddTooltip(IDC_SHADER_FX);
|
||||
|
@ -658,29 +658,29 @@ void GSHacksDlg::OnInit()
|
|||
SendMessage(GetDlgItem(m_hWnd, IDC_MSAACB), CB_ADDSTRING, 0, (LPARAM)text);
|
||||
}
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_MSAACB), CB_SETCURSEL, msaa2cb[min(theApp.GetConfig("UserHacks_MSAA", 0), 16)], 0);
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_MSAACB), CB_SETCURSEL, msaa2cb[min(theApp.GetConfigI("UserHacks_MSAA"), 16)], 0);
|
||||
|
||||
CheckDlgButton(m_hWnd, IDC_ALPHAHACK, theApp.GetConfig("UserHacks_AlphaHack", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_OFFSETHACK, theApp.GetConfig("UserHacks_HalfPixelOffset", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_WILDHACK, theApp.GetConfig("UserHacks_WildHack", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_ALPHASTENCIL, theApp.GetConfig("UserHacks_AlphaStencil", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_PRELOAD_GS, theApp.GetConfig("preload_frame_with_gs_data", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_ALIGN_SPRITE, theApp.GetConfig("UserHacks_align_sprite_X", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_SAFE_FBMASK, theApp.GetConfig("UserHacks_safe_fbmask", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_TC_DEPTH, theApp.GetConfig("UserHacks_DisableDepthSupport", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_FAST_TC_INV, theApp.GetConfig("UserHacks_DisablePartialInvalidation", 0));
|
||||
CheckDlgButton(m_hWnd, IDC_ALPHAHACK, theApp.GetConfigB("UserHacks_AlphaHack"));
|
||||
CheckDlgButton(m_hWnd, IDC_OFFSETHACK, theApp.GetConfigB("UserHacks_HalfPixelOffset"));
|
||||
CheckDlgButton(m_hWnd, IDC_WILDHACK, theApp.GetConfigI("UserHacks_WildHack"));
|
||||
CheckDlgButton(m_hWnd, IDC_ALPHASTENCIL, theApp.GetConfigB("UserHacks_AlphaStencil"));
|
||||
CheckDlgButton(m_hWnd, IDC_PRELOAD_GS, theApp.GetConfigB("preload_frame_with_gs_data"));
|
||||
CheckDlgButton(m_hWnd, IDC_ALIGN_SPRITE, theApp.GetConfigB("UserHacks_align_sprite_X"));
|
||||
CheckDlgButton(m_hWnd, IDC_SAFE_FBMASK, theApp.GetConfigB("UserHacks_safe_fbmask"));
|
||||
CheckDlgButton(m_hWnd, IDC_TC_DEPTH, theApp.GetConfigB("UserHacks_DisableDepthSupport"));
|
||||
CheckDlgButton(m_hWnd, IDC_FAST_TC_INV, theApp.GetConfigB("UserHacks_DisablePartialInvalidation"));
|
||||
|
||||
ComboBoxInit(IDC_ROUND_SPRITE, theApp.m_gs_hack, theApp.GetConfig("UserHacks_round_sprite_offset", 0));
|
||||
ComboBoxInit(IDC_SPRITEHACK, theApp.m_gs_hack, theApp.GetConfig("UserHacks_SpriteHack", 0));
|
||||
ComboBoxInit(IDC_ROUND_SPRITE, theApp.m_gs_hack, theApp.GetConfigI("UserHacks_round_sprite_offset"));
|
||||
ComboBoxInit(IDC_SPRITEHACK, theApp.m_gs_hack, theApp.GetConfigI("UserHacks_SpriteHack"));
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETRANGE, 0, MAKELPARAM(1000, 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("UserHacks_SkipDraw", 0), 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfigI("UserHacks_SkipDraw"), 0));
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_TCOFFSETX), UDM_SETRANGE, 0, MAKELPARAM(10000, 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_TCOFFSETX), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("UserHacks_TCOffset", 0) & 0xFFFF, 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_TCOFFSETX), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfigI("UserHacks_TCOffset") & 0xFFFF, 0));
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_TCOFFSETY), UDM_SETRANGE, 0, MAKELPARAM(10000, 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_TCOFFSETY), UDM_SETPOS, 0, MAKELPARAM((theApp.GetConfig("UserHacks_TCOffset", 0) >> 16) & 0xFFFF, 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_TCOFFSETY), UDM_SETPOS, 0, MAKELPARAM((theApp.GetConfigI("UserHacks_TCOffset") >> 16) & 0xFFFF, 0));
|
||||
|
||||
ShowWindow(GetDlgItem(m_hWnd, IDC_ALPHASTENCIL), ogl ? SW_HIDE : SW_SHOW);
|
||||
ShowWindow(GetDlgItem(m_hWnd, IDC_ALPHAHACK), ogl ? SW_HIDE : SW_SHOW);
|
||||
|
|
|
@ -43,19 +43,19 @@ GSState::GSState()
|
|||
, m_options(0)
|
||||
, m_frameskip(0)
|
||||
{
|
||||
m_nativeres = theApp.GetConfig("upscale_multiplier",1) == 1;
|
||||
m_mipmap = !!theApp.GetConfig("mipmap", 1);
|
||||
m_NTSC_Saturation = !!theApp.GetConfig("NTSC_Saturation", true);
|
||||
m_userhacks_skipdraw = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_SkipDraw", 0) : 0;
|
||||
m_nativeres = theApp.GetConfigI("upscale_multiplier") == 1;
|
||||
m_mipmap = theApp.GetConfigB("mipmap");
|
||||
m_NTSC_Saturation = theApp.GetConfigB("NTSC_Saturation");
|
||||
m_userhacks_skipdraw = theApp.GetConfigB("UserHacks") ? theApp.GetConfigI("UserHacks_SkipDraw") : 0;
|
||||
|
||||
s_n = 0;
|
||||
s_dump = !!theApp.GetConfig("dump", 0);
|
||||
s_save = !!theApp.GetConfig("save", 0);
|
||||
s_savet = !!theApp.GetConfig("savet", 0);
|
||||
s_savez = !!theApp.GetConfig("savez", 0);
|
||||
s_savef = !!theApp.GetConfig("savef", 0);
|
||||
s_saven = theApp.GetConfig("saven", 0);
|
||||
s_savel = theApp.GetConfig("savel", 5000);
|
||||
s_dump = theApp.GetConfigB("dump");
|
||||
s_save = theApp.GetConfigB("save");
|
||||
s_savet = theApp.GetConfigB("savet");
|
||||
s_savez = theApp.GetConfigB("savez");
|
||||
s_savef = theApp.GetConfigB("savef");
|
||||
s_saven = theApp.GetConfigI("saven");
|
||||
s_savel = theApp.GetConfigI("savel");
|
||||
#if defined(__unix__)
|
||||
if (s_dump) {
|
||||
GSmkdir("/tmp/GS_HW_dump");
|
||||
|
@ -71,8 +71,8 @@ GSState::GSState()
|
|||
//s_saven = 0;
|
||||
//s_savel = 0;
|
||||
|
||||
UserHacks_WildHack = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_WildHack", 0) : 0;
|
||||
m_crc_hack_level = theApp.GetConfig("crc_hack_level", 3);
|
||||
UserHacks_WildHack = theApp.GetConfigB("UserHacks") ? theApp.GetConfigI("UserHacks_WildHack") : 0;
|
||||
m_crc_hack_level = theApp.GetConfigI("crc_hack_level");
|
||||
|
||||
memset(&m_v, 0, sizeof(m_v));
|
||||
memset(&m_vertex, 0, sizeof(m_vertex));
|
||||
|
|
|
@ -179,7 +179,7 @@ bool GSTexture11::Save(const string& fn, bool user_image, bool dds)
|
|||
return false;
|
||||
}
|
||||
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfig("png_compression_level", Z_BEST_SPEED);
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfigI("png_compression_level");
|
||||
bool success = GSPng::Save(format, fn, static_cast<uint8*>(sm.pData), desc.Width, desc.Height, sm.RowPitch, compression);
|
||||
|
||||
m_ctx->Unmap(res, 0);
|
||||
|
|
|
@ -201,7 +201,7 @@ bool GSTexture9::Save(const string& fn, bool user_image, bool dds)
|
|||
return false;
|
||||
}
|
||||
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfig("png_compression_level", Z_BEST_SPEED);
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfigI("png_compression_level");
|
||||
bool success = GSPng::Save(format, fn, static_cast<uint8*>(slr.pBits), desc.Width, desc.Height, slr.Pitch, compression, rb_swapped);
|
||||
|
||||
surface->UnlockRect();
|
||||
|
|
|
@ -28,14 +28,14 @@ bool GSTextureCache::m_disable_partial_invalidation = false;
|
|||
GSTextureCache::GSTextureCache(GSRenderer* r)
|
||||
: m_renderer(r)
|
||||
{
|
||||
s_IS_OPENGL = (static_cast<GSRendererType>(theApp.GetConfig("Renderer", static_cast<int>(GSRendererType::Default))) == GSRendererType::OGL_HW);
|
||||
s_IS_OPENGL = (static_cast<GSRendererType>(theApp.GetConfigI("Renderer")) == GSRendererType::OGL_HW);
|
||||
|
||||
if (theApp.GetConfig("UserHacks", 0)) {
|
||||
m_spritehack = theApp.GetConfig("UserHacks_SpriteHack", 0);
|
||||
UserHacks_HalfPixelOffset = !!theApp.GetConfig("UserHacks_HalfPixelOffset", 0);
|
||||
m_preload_frame = !!theApp.GetConfig("preload_frame_with_gs_data", 0);
|
||||
m_disable_partial_invalidation = !!theApp.GetConfig("UserHacks_DisablePartialInvalidation", 0);
|
||||
m_can_convert_depth = !theApp.GetConfig("UserHacks_DisableDepthSupport", 0);
|
||||
if (theApp.GetConfigB("UserHacks")) {
|
||||
m_spritehack = theApp.GetConfigI("UserHacks_SpriteHack");
|
||||
UserHacks_HalfPixelOffset = theApp.GetConfigB("UserHacks_HalfPixelOffset");
|
||||
m_preload_frame = theApp.GetConfigB("preload_frame_with_gs_data");
|
||||
m_disable_partial_invalidation = theApp.GetConfigB("UserHacks_DisablePartialInvalidation");
|
||||
m_can_convert_depth = !theApp.GetConfigB("UserHacks_DisableDepthSupport");
|
||||
} else {
|
||||
m_spritehack = 0;
|
||||
UserHacks_HalfPixelOffset = false;
|
||||
|
@ -44,9 +44,9 @@ GSTextureCache::GSTextureCache(GSRenderer* r)
|
|||
m_can_convert_depth = true;
|
||||
}
|
||||
|
||||
m_paltex = !!theApp.GetConfig("paltex", 0);
|
||||
m_paltex = theApp.GetConfigB("paltex");
|
||||
m_can_convert_depth &= s_IS_OPENGL; // only supported by openGL so far
|
||||
m_crc_hack_level = theApp.GetConfig("crc_hack_level", 3);
|
||||
m_crc_hack_level = theApp.GetConfigI("crc_hack_level");
|
||||
|
||||
// In theory 4MB is enough but 9MB is safer for overflow (8MB
|
||||
// isn't enough in custom resolution)
|
||||
|
|
|
@ -54,13 +54,13 @@ bool GSDevice11::CreateTextureFX()
|
|||
|
||||
memset(&sd, 0, sizeof(sd));
|
||||
|
||||
sd.Filter = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_MIP_POINT;
|
||||
sd.Filter = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_MIP_POINT;
|
||||
sd.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.MinLOD = -FLT_MAX;
|
||||
sd.MaxLOD = FLT_MAX;
|
||||
sd.MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
sd.MaxAnisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
sd.ComparisonFunc = D3D11_COMPARISON_NEVER;
|
||||
|
||||
hr = m_dev->CreateSamplerState(&sd, &m_palette_ss);
|
||||
|
@ -269,7 +269,7 @@ void GSDevice11::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSe
|
|||
|
||||
memset(&sd, 0, sizeof(sd));
|
||||
|
||||
af.Filter = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT;
|
||||
af.Filter = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT;
|
||||
sd.Filter = ssel.ltf ? af.Filter : D3D11_FILTER_MIN_MAG_MIP_POINT;
|
||||
|
||||
sd.AddressU = ssel.tau ? D3D11_TEXTURE_ADDRESS_WRAP : D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
|
@ -277,7 +277,7 @@ void GSDevice11::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSe
|
|||
sd.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
|
||||
sd.MinLOD = -FLT_MAX;
|
||||
sd.MaxLOD = FLT_MAX;
|
||||
sd.MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
sd.MaxAnisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
sd.ComparisonFunc = D3D11_COMPARISON_NEVER;
|
||||
|
||||
m_dev->CreateSamplerState(&sd, &ss0);
|
||||
|
|
|
@ -213,8 +213,8 @@ void GSDevice9::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSel
|
|||
|
||||
memset(ss, 0, sizeof(*ss));
|
||||
|
||||
ss->Anisotropic[0] = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3DTEXF_ANISOTROPIC : D3DTEXF_LINEAR;
|
||||
ss->Anisotropic[1] = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3DTEXF_ANISOTROPIC : D3DTEXF_POINT;
|
||||
ss->Anisotropic[0] = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3DTEXF_ANISOTROPIC : D3DTEXF_LINEAR;
|
||||
ss->Anisotropic[1] = theApp.GetConfigI("MaxAnisotropy") && !theApp.GetConfigB("paltex") ? D3DTEXF_ANISOTROPIC : D3DTEXF_POINT;
|
||||
ss->FilterMin[0] = ssel.ltf ? ss->Anisotropic[0] : D3DTEXF_POINT;
|
||||
ss->FilterMag[0] = ssel.ltf ? ss->Anisotropic[0] : D3DTEXF_POINT;
|
||||
ss->FilterMip[0] = ssel.ltf ? ss->Anisotropic[0] : D3DTEXF_POINT;
|
||||
|
@ -223,7 +223,7 @@ void GSDevice9::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSel
|
|||
ss->FilterMip[1] = ss->Anisotropic[1];
|
||||
ss->AddressU = ssel.tau ? D3DTADDRESS_WRAP : D3DTADDRESS_CLAMP;
|
||||
ss->AddressV = ssel.tav ? D3DTADDRESS_WRAP : D3DTADDRESS_CLAMP;
|
||||
ss->MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
|
||||
ss->MaxAnisotropy = theApp.GetConfigI("MaxAnisotropy");
|
||||
ss->MaxLOD = ULONG_MAX;
|
||||
|
||||
|
||||
|
|
|
@ -477,7 +477,7 @@ bool GSTextureOGL::Save(const string& fn, bool user_image, bool dds)
|
|||
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
|
||||
}
|
||||
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfig("png_compression_level", Z_BEST_SPEED);
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfigI("png_compression_level");
|
||||
return GSPng::Save(fmt, fn, image.get(), m_size.x, m_size.y, pitch, compression);
|
||||
}
|
||||
|
||||
|
|
|
@ -94,6 +94,6 @@ bool GSTextureSW::Save(const string& fn, bool user_image, bool dds)
|
|||
#else
|
||||
GSPng::Format fmt = GSPng::RGB_PNG;
|
||||
#endif
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfig("png_compression_level", Z_BEST_SPEED);
|
||||
int compression = user_image ? Z_BEST_COMPRESSION : theApp.GetConfigI("png_compression_level");
|
||||
return GSPng::Save(fmt, fn, static_cast<uint8*>(m_data), m_size.x, m_size.y, m_pitch, compression);
|
||||
}
|
||||
|
|
|
@ -164,8 +164,8 @@ bool GSWndEGL::Create(const string& title, int w, int h)
|
|||
throw GSDXRecoverableError();
|
||||
|
||||
if(w <= 0 || h <= 0) {
|
||||
w = theApp.GetConfig("ModeWidth", 640);
|
||||
h = theApp.GetConfig("ModeHeight", 480);
|
||||
w = theApp.GetConfigI("ModeWidth");
|
||||
h = theApp.GetConfigI("ModeHeight");
|
||||
}
|
||||
|
||||
m_managed = true;
|
||||
|
|
|
@ -173,8 +173,8 @@ bool GSWndOGL::Create(const string& title, int w, int h)
|
|||
throw GSDXRecoverableError();
|
||||
|
||||
if(w <= 0 || h <= 0) {
|
||||
w = theApp.GetConfig("ModeWidth", 640);
|
||||
h = theApp.GetConfig("ModeHeight", 480);
|
||||
w = theApp.GetConfigI("ModeWidth");
|
||||
h = theApp.GetConfigI("ModeHeight");
|
||||
}
|
||||
|
||||
m_managed = true;
|
||||
|
|
|
@ -100,7 +100,8 @@ bool GSdxApp::WritePrivateProfileString(const char* lpAppName, const char* lpKey
|
|||
// Do not save the inifile key which is not an option
|
||||
if (it->first.compare("inifile") == 0) continue;
|
||||
|
||||
if (!it->second.empty())
|
||||
// Only keep option that have a default value (allow to purge old option of the GSdx.ini)
|
||||
if (!it->second.empty() && m_default_configuration.find(it->first) != m_default_configuration.end())
|
||||
fprintf(f, "%s = %s\n", it->first.c_str(), it->second.c_str());
|
||||
}
|
||||
fclose(f);
|
||||
|
@ -235,6 +236,100 @@ GSdxApp::GSdxApp()
|
|||
m_gpu_scale.push_back(GSSetting(2 | (1 << 2), "H x 4 - V x 2", ""));
|
||||
m_gpu_scale.push_back(GSSetting(1 | (2 << 2), "H x 2 - V x 4", ""));
|
||||
m_gpu_scale.push_back(GSSetting(2 | (2 << 2), "H x 4 - V x 4", ""));
|
||||
|
||||
// Avoid to clutter the ini file with useless options
|
||||
|
||||
// PSX option (or DX9). Not supported on linux
|
||||
#ifdef _WIN32
|
||||
m_default_configuration["dithering"] = "1";
|
||||
m_default_configuration["ModeRefreshRate"] = "0";
|
||||
m_default_configuration["scale_x"] = "0";
|
||||
m_default_configuration["scale_y"] = "0";
|
||||
m_default_configuration["windowed"] = "1";
|
||||
#endif
|
||||
|
||||
// Per OS option
|
||||
#ifdef _WIN32
|
||||
m_default_configuration["Adapter"] = "default";
|
||||
m_default_configuration["CaptureHeight"] = "480";
|
||||
m_default_configuration["CaptureFileName"] = "";
|
||||
m_default_configuration["CaptureVideoCodecDisplayName"] = "";
|
||||
m_default_configuration["CaptureWidth"] = "640";
|
||||
m_default_configuration["fba"] = "1";
|
||||
m_default_configuration["logz"] = "0";
|
||||
#else
|
||||
m_default_configuration["linux_replay"] = "1";
|
||||
#endif
|
||||
|
||||
m_default_configuration["aa1"] = "0";
|
||||
m_default_configuration["accurate_blending_unit"] = "1";
|
||||
m_default_configuration["accurate_date"] = "0";
|
||||
m_default_configuration["AspectRatio"] = "1";
|
||||
m_default_configuration["capture_enabled"] = "0";
|
||||
m_default_configuration["capture_out_dir"] = "/tmp/GSdx_Capture";
|
||||
m_default_configuration["capture_threads"] = "4";
|
||||
m_default_configuration["crc_hack_level"] = "3";
|
||||
m_default_configuration["CrcHacksExclusions"] = "";
|
||||
m_default_configuration["debug_glsl_shader"] = "0";
|
||||
m_default_configuration["debug_opengl"] = "0";
|
||||
m_default_configuration["dump"] = "0";
|
||||
m_default_configuration["extrathreads"] = "2";
|
||||
m_default_configuration["filter"] = "2";
|
||||
m_default_configuration["fxaa"] = "0";
|
||||
m_default_configuration["interlace"] = "7";
|
||||
m_default_configuration["large_framebuffer"] = "1";
|
||||
m_default_configuration["MaxAnisotropy"] = "0";
|
||||
m_default_configuration["mipmap"] = "1";
|
||||
m_default_configuration["ModeHeight"] = "480";
|
||||
m_default_configuration["ModeWidth"] = "640";
|
||||
m_default_configuration["NTSC_Saturation"] = "1";
|
||||
m_default_configuration["ocldev"] = "";
|
||||
m_default_configuration["override_geometry_shader"] = "-1";
|
||||
m_default_configuration["override_GL_ARB_clear_texture"] = "-1";
|
||||
m_default_configuration["override_GL_ARB_draw_buffers_blend"] = "-1";
|
||||
m_default_configuration["override_GL_ARB_get_texture_sub_image"] = "-1";
|
||||
m_default_configuration["override_GL_ARB_gpu_shader5"] = "-1";
|
||||
m_default_configuration["override_GL_ARB_shader_image_load_store"] = "-1";
|
||||
m_default_configuration["override_GL_ARB_viewport_array"] = "-1";
|
||||
m_default_configuration["override_GL_EXT_texture_filter_anisotropic"] = "-1";
|
||||
m_default_configuration["paltex"] = "0";
|
||||
m_default_configuration["png_compression_level"] = to_string(Z_BEST_SPEED);
|
||||
m_default_configuration["preload_frame_with_gs_data"] = "0";
|
||||
m_default_configuration["Renderer"] = to_string(static_cast<int>(GSRendererType::Default)); // FIXME
|
||||
m_default_configuration["resx"] = "1024";
|
||||
m_default_configuration["resy"] = "1024";
|
||||
m_default_configuration["save"] = "0";
|
||||
m_default_configuration["savef"] = "0";
|
||||
m_default_configuration["savel"] = "5000";
|
||||
m_default_configuration["saven"] = "0";
|
||||
m_default_configuration["savet"] = "0";
|
||||
m_default_configuration["savez"] = "0";
|
||||
m_default_configuration["ShadeBoost"] = "0";
|
||||
m_default_configuration["ShadeBoost_Brightness"] = "50";
|
||||
m_default_configuration["ShadeBoost_Contrast"] = "50";
|
||||
m_default_configuration["ShadeBoost_Saturation"] = "50";
|
||||
m_default_configuration["shaderfx"] = "0";
|
||||
m_default_configuration["shaderfx_conf"] = "shaders/GSdx_FX_Settings.ini";
|
||||
m_default_configuration["shaderfx_glsl"] = "shaders/GSdx.fx";
|
||||
m_default_configuration["TVShader"] = "0";
|
||||
m_default_configuration["upscale_multiplier"] = "1";
|
||||
m_default_configuration["UserHacks"] = "0";
|
||||
m_default_configuration["UserHacks_align_sprite_X"] = "0";
|
||||
m_default_configuration["UserHacks_AlphaHack"] = "0";
|
||||
m_default_configuration["UserHacks_AlphaStencil"] = "0";
|
||||
m_default_configuration["UserHacks_ColorDepthClearOverlap"] = "0";
|
||||
m_default_configuration["UserHacks_DisableDepthSupport"] = "0";
|
||||
m_default_configuration["UserHacks_DisablePartialInvalidation"] = "0";
|
||||
m_default_configuration["UserHacks_HalfPixelOffset"] = "0";
|
||||
m_default_configuration["UserHacks_merge_pp_sprite"] = "0";
|
||||
m_default_configuration["UserHacks_MSAA"] = "0";
|
||||
m_default_configuration["UserHacks_round_sprite_offset"] = "0";
|
||||
m_default_configuration["UserHacks_safe_fbmask"] = "0";
|
||||
m_default_configuration["UserHacks_SkipDraw"] = "0";
|
||||
m_default_configuration["UserHacks_SpriteHack"] = "0";
|
||||
m_default_configuration["UserHacks_TCOffset"] = "0";
|
||||
m_default_configuration["UserHacks_WildHack"] = "0";
|
||||
m_default_configuration["vsync"] = "0";
|
||||
}
|
||||
|
||||
#if defined(__unix__)
|
||||
|
@ -268,7 +363,9 @@ void GSdxApp::BuildConfigurationMap(const char* lpFileName)
|
|||
while( fscanf(f, "%255s = %255s\n", key, value) != EOF ) {
|
||||
std::string key_s(key);
|
||||
std::string value_s(value);
|
||||
m_configuration_map[key_s] = value_s;
|
||||
// Only keep option that have a default value (allow to purge old option of the GSdx.ini)
|
||||
if (m_default_configuration.find(key_s) != m_default_configuration.end())
|
||||
m_configuration_map[key_s] = value_s;
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
|
@ -299,11 +396,17 @@ void GSdxApp::SetConfigDir(const char* dir)
|
|||
}
|
||||
}
|
||||
|
||||
string GSdxApp::GetConfig(const char* entry, const char* value)
|
||||
string GSdxApp::GetConfigS(const char* entry)
|
||||
{
|
||||
char buff[4096] = {0};
|
||||
auto def = m_default_configuration.find(entry);
|
||||
|
||||
GetPrivateProfileString(m_section.c_str(), entry, value, buff, countof(buff), m_ini.c_str());
|
||||
if (def != m_default_configuration.end()) {
|
||||
GetPrivateProfileString(m_section.c_str(), entry, def->second.c_str(), buff, countof(buff), m_ini.c_str());
|
||||
} else {
|
||||
fprintf(stderr, "Option %s doesn't have a default value\n", entry);
|
||||
GetPrivateProfileString(m_section.c_str(), entry, "", buff, countof(buff), m_ini.c_str());
|
||||
}
|
||||
|
||||
return string(buff);
|
||||
}
|
||||
|
@ -313,9 +416,21 @@ void GSdxApp::SetConfig(const char* entry, const char* value)
|
|||
WritePrivateProfileString(m_section.c_str(), entry, value, m_ini.c_str());
|
||||
}
|
||||
|
||||
int GSdxApp::GetConfig(const char* entry, int value)
|
||||
int GSdxApp::GetConfigI(const char* entry)
|
||||
{
|
||||
return GetPrivateProfileInt(m_section.c_str(), entry, value, m_ini.c_str());
|
||||
auto def = m_default_configuration.find(entry);
|
||||
|
||||
if (def != m_default_configuration.end()) {
|
||||
return GetPrivateProfileInt(m_section.c_str(), entry, std::stoi(def->second), m_ini.c_str());
|
||||
} else {
|
||||
fprintf(stderr, "Option %s doesn't have a default value\n", entry);
|
||||
return GetPrivateProfileInt(m_section.c_str(), entry, 0, m_ini.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
bool GSdxApp::GetConfigB(const char* entry)
|
||||
{
|
||||
return !!GetConfigI(entry);
|
||||
}
|
||||
|
||||
void GSdxApp::SetConfig(const char* entry, int value)
|
||||
|
|
|
@ -27,6 +27,7 @@ class GSdxApp
|
|||
{
|
||||
std::string m_ini;
|
||||
std::string m_section;
|
||||
std::map< std::string, std::string > m_default_configuration;
|
||||
#if defined(__unix__)
|
||||
std::map< std::string, std::string > m_configuration_map;
|
||||
#endif
|
||||
|
@ -51,10 +52,13 @@ public:
|
|||
|
||||
bool LoadResource(int id, vector<unsigned char>& buff, const char* type = NULL);
|
||||
|
||||
string GetConfig(const char* entry, const char* value);
|
||||
void SetConfig(const char* entry, const char* value);
|
||||
int GetConfig(const char* entry, int value);
|
||||
void SetConfig(const char* entry, int value);
|
||||
// Avoid issue with overloading
|
||||
int GetConfigI(const char* entry);
|
||||
bool GetConfigB(const char* entry);
|
||||
string GetConfigS(const char* entry);
|
||||
|
||||
|
||||
void SetConfigDir(const char* dir);
|
||||
|
||||
|
|
|
@ -110,8 +110,8 @@ EXPORT_C_(int32) GPUopen(void* hWnd)
|
|||
return -1;
|
||||
#endif
|
||||
|
||||
GPURendererType renderer = static_cast<GPURendererType>(theApp.GetConfig("Renderer", static_cast<int>(GPURendererType::D3D9_SW)));
|
||||
int threads = theApp.GetConfig("extrathreads", DEFAULT_EXTRA_RENDERING_THREADS);
|
||||
GPURendererType renderer = static_cast<GPURendererType>(theApp.GetConfigI("Renderer"));
|
||||
int threads = theApp.GetConfigI("extrathreads");
|
||||
|
||||
switch(renderer)
|
||||
{
|
||||
|
|
|
@ -34,8 +34,8 @@ const GSVector4i GPULocalMemory::m_rxxx(0x0000001f);
|
|||
|
||||
GPULocalMemory::GPULocalMemory()
|
||||
{
|
||||
m_scale.x = std::min<int>(std::max<int>(theApp.GetConfig("scale_x", 0), 0), 2);
|
||||
m_scale.y = std::min<int>(std::max<int>(theApp.GetConfig("scale_y", 0), 0), 2);
|
||||
m_scale.x = std::min<int>(std::max<int>(theApp.GetConfigI("scale_x"), 0), 2);
|
||||
m_scale.y = std::min<int>(std::max<int>(theApp.GetConfigI("scale_y"), 0), 2);
|
||||
|
||||
//
|
||||
|
||||
|
|
|
@ -32,14 +32,14 @@ map<HWND, GPURenderer*> GPURenderer::m_wnd2gpu;
|
|||
GPURenderer::GPURenderer(GSDevice* dev)
|
||||
: m_dev(dev)
|
||||
{
|
||||
m_filter = theApp.GetConfig("filter", 0);
|
||||
m_dither = theApp.GetConfig("dithering", 1);
|
||||
m_aspectratio = theApp.GetConfig("AspectRatio", 1);
|
||||
m_vsync = !!theApp.GetConfig("vsync", 0);
|
||||
m_fxaa = !!theApp.GetConfig("fxaa", 0);
|
||||
m_shaderfx = !!theApp.GetConfig("shaderfx", 0);
|
||||
m_scale = m_mem.GetScale();
|
||||
m_shadeboost = !!theApp.GetConfig("ShadeBoost", 0);
|
||||
m_filter = theApp.GetConfigI("filter");
|
||||
m_dither = theApp.GetConfigI("dithering");
|
||||
m_aspectratio = theApp.GetConfigI("AspectRatio");
|
||||
m_vsync = theApp.GetConfigB("vsync");
|
||||
m_fxaa = theApp.GetConfigB("fxaa");
|
||||
m_shaderfx = theApp.GetConfigB("shaderfx");
|
||||
m_scale = m_mem.GetScale();
|
||||
m_shadeboost = theApp.GetConfigB("ShadeBoost");
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
|
|
|
@ -46,9 +46,9 @@ void GPUSettingsDlg::OnInit()
|
|||
|
||||
if(CComPtr<IDirect3D9> d3d = Direct3DCreate9(D3D_SDK_VERSION))
|
||||
{
|
||||
uint32 w = theApp.GetConfig("ModeWidth", 0);
|
||||
uint32 h = theApp.GetConfig("ModeHeight", 0);
|
||||
uint32 hz = theApp.GetConfig("ModeRefreshRate", 0);
|
||||
uint32 w = theApp.GetConfigI("ModeWidth");
|
||||
uint32 h = theApp.GetConfigI("ModeHeight");
|
||||
uint32 hz = theApp.GetConfigI("ModeRefreshRate");
|
||||
|
||||
uint32 n = d3d->GetAdapterModeCount(D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8);
|
||||
|
||||
|
@ -66,16 +66,16 @@ void GPUSettingsDlg::OnInit()
|
|||
}
|
||||
}
|
||||
|
||||
ComboBoxInit(IDC_RENDERER, theApp.m_gpu_renderers, theApp.GetConfig("Renderer", static_cast<int>(GPURendererType::D3D9_SW)));
|
||||
ComboBoxInit(IDC_FILTER, theApp.m_gpu_filter, theApp.GetConfig("filter", 0));
|
||||
ComboBoxInit(IDC_DITHERING, theApp.m_gpu_dithering, theApp.GetConfig("dithering", 1));
|
||||
ComboBoxInit(IDC_ASPECTRATIO, theApp.m_gpu_aspectratio, theApp.GetConfig("AspectRatio", 1));
|
||||
ComboBoxInit(IDC_SCALE, theApp.m_gpu_scale, theApp.GetConfig("scale_x", 0) | (theApp.GetConfig("scale_y", 0) << 2));
|
||||
ComboBoxInit(IDC_RENDERER, theApp.m_gpu_renderers, theApp.GetConfigI("Renderer"));
|
||||
ComboBoxInit(IDC_FILTER, theApp.m_gpu_filter, theApp.GetConfigI("filter"));
|
||||
ComboBoxInit(IDC_DITHERING, theApp.m_gpu_dithering, theApp.GetConfigI("dithering"));
|
||||
ComboBoxInit(IDC_ASPECTRATIO, theApp.m_gpu_aspectratio, theApp.GetConfigI("AspectRatio"));
|
||||
ComboBoxInit(IDC_SCALE, theApp.m_gpu_scale, theApp.GetConfigI("scale_x") | (theApp.GetConfigI("scale_y") << 2));
|
||||
|
||||
CheckDlgButton(m_hWnd, IDC_WINDOWED, theApp.GetConfig("windowed", 1));
|
||||
CheckDlgButton(m_hWnd, IDC_WINDOWED, theApp.GetConfigB("windowed"));
|
||||
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SWTHREADS), UDM_SETRANGE, 0, MAKELPARAM(16, 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SWTHREADS), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("extrathreads", DEFAULT_EXTRA_RENDERING_THREADS), 0));
|
||||
SendMessage(GetDlgItem(m_hWnd, IDC_SWTHREADS), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfigI("extrathreads"), 0));
|
||||
|
||||
UpdateControls();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue