@@ -917,6 +917,16 @@ void CSettings::CreateGUI()
917917    m_pCheckBoxRemoteJavascript->GetPosition (vecTemp);
918918    m_pCheckBoxRemoteJavascript->AutoSize (NULL , 20 .0f );
919919
920+     m_pCheckBoxBrowserGPUEnabled = reinterpret_cast <CGUICheckBox*>(pManager->CreateCheckBox (m_pTabBrowser, _ (" Enable GPU rendering" true ));
921+     m_pCheckBoxBrowserGPUEnabled->SetPosition (CVector2D (vecTemp.fX  + 300 .0f , vecTemp.fY  - 20 .0f ));
922+     m_pCheckBoxBrowserGPUEnabled->AutoSize (NULL , 20 .0f );
923+     m_pCheckBoxBrowserGPUEnabled->SetClickHandler (GUI_CALLBACK (&CSettings::OnGPUSettingChanged, this ));
924+ 
925+     m_pCheckBoxBrowserGPUCompositingEnabled =
926+         reinterpret_cast <CGUICheckBox*>(pManager->CreateCheckBox (m_pTabBrowser, _ (" Enable GPU compositing" true ));
927+     m_pCheckBoxBrowserGPUCompositingEnabled->SetPosition (CVector2D (vecTemp.fX  + 300 .0f , vecTemp.fY ));
928+     m_pCheckBoxBrowserGPUCompositingEnabled->AutoSize (NULL , 20 .0f );
929+ 
920930    m_pLabelBrowserCustomBlacklist = reinterpret_cast <CGUILabel*>(pManager->CreateLabel (m_pTabBrowser, _ (" Custom blacklist" 
921931    m_pLabelBrowserCustomBlacklist->SetPosition (CVector2D (vecTemp.fX , vecTemp.fY  + 30 .0f ));
922932    m_pLabelBrowserCustomBlacklist->GetPosition (vecTemp);
@@ -3287,6 +3297,14 @@ void CSettings::LoadData()
32873297    m_pCheckBoxRemoteBrowser->SetSelected (bVar);
32883298    CVARS_GET (" browser_remote_javascript" 
32893299    m_pCheckBoxRemoteJavascript->SetSelected (bVar);
3300+     CVARS_GET (" browser_enable_gpu" 
3301+     m_pCheckBoxBrowserGPUEnabled->SetSelected (bVar);
3302+ 
3303+     if  (!bVar)
3304+         m_pCheckBoxBrowserGPUCompositingEnabled->SetEnabled (false );
3305+ 
3306+     CVARS_GET (" browser_enable_gpu_compositing" 
3307+     m_pCheckBoxBrowserGPUCompositingEnabled->SetSelected (bVar);
32903308
32913309    ReloadBrowserLists ();
32923310}
@@ -3711,6 +3729,20 @@ void CSettings::SaveData()
37113729            bBrowserSettingChanged = true ;
37123730    }
37133731
3732+     bool  bBrowserGPUEnabled = false ;
3733+     CVARS_GET (" browser_enable_gpu" 
3734+ 
3735+     bool  bBrowserGPUSetting = m_pCheckBoxBrowserGPUEnabled->GetSelected ();
3736+     bool  bBrowserGPUSettingChanged = (bBrowserGPUSetting != bBrowserGPUEnabled);
3737+     CVARS_SET (" browser_enable_gpu" 
3738+ 
3739+     bool  bBrowserGPUCompositingEnabled = false ;
3740+     CVARS_GET (" browser_enable_gpu_compositing" 
3741+ 
3742+     bool  bBrowserGPUCompositingSetting = m_pCheckBoxBrowserGPUCompositingEnabled->GetSelected ();
3743+     bool  bBrowserGPUCompositingSettingChanged = (bBrowserGPUCompositingSetting != bBrowserGPUCompositingEnabled);
3744+     CVARS_SET (" browser_enable_gpu_compositing" 
3745+ 
37143746    //  Ensure CVARS ranges ok
37153747    CClientVariables::GetSingleton ().ValidateValues ();
37163748
@@ -3720,7 +3752,8 @@ void CSettings::SaveData()
37203752    gameSettings->Save ();
37213753
37223754    //  Ask to restart?
3723-     if  (bIsVideoModeChanged || bIsAntiAliasingChanged || bIsCustomizedSAFilesChanged || processsDPIAwareChanged)
3755+     if  (bIsVideoModeChanged || bIsAntiAliasingChanged || bIsCustomizedSAFilesChanged || processsDPIAwareChanged || bBrowserGPUSettingChanged ||
3756+         bBrowserGPUCompositingSettingChanged)
37243757        ShowRestartQuestion ();
37253758    else  if  (CModManager::GetSingleton ().IsLoaded () && bBrowserSettingChanged)
37263759        ShowDisconnectQuestion ();
@@ -4873,3 +4906,9 @@ bool CSettings::IsActive()
48734906{
48744907    return  m_pWindow->IsActive ();
48754908}
4909+ 
4910+ bool  CSettings::OnGPUSettingChanged (CGUIElement* pElement)
4911+ {
4912+     m_pCheckBoxBrowserGPUCompositingEnabled->SetEnabled (m_pCheckBoxBrowserGPUEnabled->GetSelected ());
4913+     return  true ;
4914+ }
0 commit comments