diff --git a/Source/Glide64/Config.cpp b/Source/Glide64/Config.cpp index 59f10ccc8..e15f6627a 100644 --- a/Source/Glide64/Config.cpp +++ b/Source/Glide64/Config.cpp @@ -323,7 +323,7 @@ public: m_VramSize.Attach(GetDlgItem(IDC_SPIN_VRAM_SIZE)); m_VramSize.SetBuddy(GetDlgItem(IDC_TXT_VRAM_SIZE)); m_spinVRAM.Attach(GetDlgItem(IDC_TXT_VRAM_SIZE)); - m_cbxVRAM.SetCheck(g_settings->wrpVRAM == 0 ? BST_CHECKED : BST_UNCHECKED); + m_cbxVRAM.SetCheck(g_settings->wrpVRAM() == 0 ? BST_CHECKED : BST_UNCHECKED); m_lblMb.Attach(GetDlgItem(IDC_LBL_MB)); AutoDetectChanged(); return TRUE; @@ -339,7 +339,7 @@ public: g_settings->SetTexenhOptions(m_cbxTextureSettings.GetCheck() == BST_CHECKED); g_settings->SetFullScreenRes(m_cmbFSResolution.GetCurSel()); g_settings->wrpAnisotropic = m_cbxAnisotropic.GetCheck() == BST_CHECKED; - g_settings->wrpVRAM = m_cbxVRAM.GetCheck() == BST_CHECKED ? 0 : atoi(spinVRAM); + g_settings->SetWrpVRAM(m_cbxVRAM.GetCheck() == BST_CHECKED ? 0 : atoi(spinVRAM)); g_settings->wrpFBO = m_cbxFBO.GetCheck() == BST_CHECKED; if (memcmp(&oldsettings, g_settings, sizeof(oldsettings))) //check that settings were changed @@ -361,7 +361,7 @@ private: void AutoDetectChanged(void) { - m_spinVRAM.SetWindowText(m_cbxVRAM.GetCheck() == BST_CHECKED ? " auto" : stdstr_f("%d",g_settings->wrpVRAM ? g_settings->wrpVRAM : 32).c_str()); + m_spinVRAM.SetWindowText(m_cbxVRAM.GetCheck() == BST_CHECKED ? " auto" : stdstr_f("%d",g_settings->wrpVRAM() != 0 ? g_settings->wrpVRAM() : 32).c_str()); m_spinVRAM.EnableWindow(m_cbxVRAM.GetCheck() != BST_CHECKED); m_VramSize.EnableWindow(m_cbxVRAM.GetCheck() != BST_CHECKED); m_lblMb.EnableWindow(m_cbxVRAM.GetCheck() != BST_CHECKED); diff --git a/Source/Glide64/Main.cpp b/Source/Glide64/Main.cpp index 0d1d54e06..df66c47ca 100644 --- a/Source/Glide64/Main.cpp +++ b/Source/Glide64/Main.cpp @@ -205,7 +205,7 @@ void ChangeSize() void ConfigWrapper() { - grConfigWrapperExt(g_settings->wrpVRAM * 1024 * 1024, g_settings->wrpFBO, g_settings->wrpAnisotropic); + grConfigWrapperExt(g_settings->wrpVRAM() * 1024 * 1024, g_settings->wrpFBO, g_settings->wrpAnisotropic); } void UseUnregisteredSetting(int /*SettingID*/) @@ -1008,7 +1008,7 @@ int CALL InitiateGFX(GFX_INFO Gfx_Info) CountCombine(); ZLUT_init(); - grConfigWrapperExt(g_settings->wrpVRAM * 1024 * 1024, g_settings->wrpFBO, g_settings->wrpAnisotropic); + grConfigWrapperExt(g_settings->wrpVRAM() * 1024 * 1024, g_settings->wrpFBO, g_settings->wrpAnisotropic); grGlideInit(); const char *extensions = grGetString(GR_EXTENSION); grGlideShutdown(); diff --git a/Source/Glide64/Settings.cpp b/Source/Glide64/Settings.cpp index 6bcf1e302..027aa639f 100644 --- a/Source/Glide64/Settings.cpp +++ b/Source/Glide64/Settings.cpp @@ -87,7 +87,7 @@ CSettings::CSettings() : #ifndef ANDROID m_FullScreenRes(0), #endif -wrpVRAM(0), + m_wrpVRAM(0), wrpFBO(0), wrpAnisotropic(0), m_FlushLogs(false) @@ -315,6 +315,15 @@ void CSettings::SetBuffClear(bool value) } } +void CSettings::SetWrpVRAM(int value) +{ + if (value != m_wrpVRAM) + { + m_wrpVRAM = value; + m_dirty = true; + } +} + void CSettings::SetGhqFltr(TextureFilter_t value) { if (value != m_ghq_fltr) @@ -549,7 +558,7 @@ void CSettings::ReadSettings() m_advanced_options = Set_basic_mode ? GetSystemSetting(Set_basic_mode) == 0 : false; m_texenh_options = GetSetting(Set_texenh_options) != 0; - this->wrpVRAM = GetSetting(Set_wrpVRAM); + m_wrpVRAM = GetSetting(Set_wrpVRAM); this->wrpFBO = GetSetting(Set_wrpFBO); this->wrpAnisotropic = GetSetting(Set_wrpAnisotropic); @@ -819,7 +828,7 @@ void CSettings::WriteSettings(void) SetSetting(Set_Rotate, m_rotate); SetSetting(Set_texenh_options, m_texenh_options); - SetSetting(Set_wrpVRAM, g_settings->wrpVRAM); + SetSetting(Set_wrpVRAM, m_wrpVRAM); SetSetting(Set_wrpFBO, g_settings->wrpFBO); SetSetting(Set_wrpAnisotropic, g_settings->wrpAnisotropic); SetSetting(Set_autodetect_ucode, m_autodetect_ucode); diff --git a/Source/Glide64/Settings.h b/Source/Glide64/Settings.h index 179400bcf..aa7158ac0 100644 --- a/Source/Glide64/Settings.h +++ b/Source/Glide64/Settings.h @@ -261,7 +261,7 @@ public: #ifndef ANDROID inline uint32_t FullScreenRes(void) const { return m_FullScreenRes; } #endif - int wrpVRAM; + inline int wrpVRAM(void) const { return m_wrpVRAM; } int wrpFBO; int wrpAnisotropic; inline bool FlushLogs(void) const { return m_FlushLogs; } @@ -275,6 +275,7 @@ public: void SetSwapMode(SwapMode_t value); void SetFog(bool value); void SetBuffClear(bool value); + void SetWrpVRAM(int value); void SetGhqFltr(TextureFilter_t value); void SetGhqEnht(TextureEnhancement_t value); void SetGhqCmpr(TextureCompression_t value); @@ -318,6 +319,7 @@ private: #ifndef ANDROID uint32_t m_FullScreenRes; #endif + int m_wrpVRAM; bool m_FlushLogs; char m_log_dir[260]; uint32_t m_ScreenRes;