diff --git a/src/graphics/irr_driver.cpp b/src/graphics/irr_driver.cpp index 306214c50..675228c9e 100644 --- a/src/graphics/irr_driver.cpp +++ b/src/graphics/irr_driver.cpp @@ -740,6 +740,13 @@ void IrrDriver::setMaxTextureSize() att.setAttribute("MAX_TEXTURE_SIZE", core::dimension2du(max, max)); } // setMaxTextureSize +// ---------------------------------------------------------------------------- +void IrrDriver::unsetMaxTextureSize() +{ + io::IAttributes &att = m_video_driver->getNonConstDriverAttributes(); + att.setAttribute("MAX_TEXTURE_SIZE", core::dimension2du(2048, 2048)); +} // unsetMaxTextureSize + // ---------------------------------------------------------------------------- void IrrDriver::cleanSunInterposer() { diff --git a/src/graphics/irr_driver.hpp b/src/graphics/irr_driver.hpp index 73f2df74e..42243a531 100644 --- a/src/graphics/irr_driver.hpp +++ b/src/graphics/irr_driver.hpp @@ -197,6 +197,7 @@ public: void initDevice(); void reset(); void setMaxTextureSize(); + void unsetMaxTextureSize(); void getOpenGLData(std::string *vendor, std::string *renderer, std::string *version); diff --git a/src/states_screens/options_screen_ui.cpp b/src/states_screens/options_screen_ui.cpp index 07902fee0..3179d64c1 100644 --- a/src/states_screens/options_screen_ui.cpp +++ b/src/states_screens/options_screen_ui.cpp @@ -26,6 +26,7 @@ #include "font/bold_face.hpp" #include "font/font_manager.hpp" #include "font/regular_face.hpp" +#include "graphics/irr_driver.hpp" #include "guiengine/scalable_font.hpp" #include "guiengine/screen.hpp" #include "guiengine/widgets/button_widget.hpp" @@ -190,7 +191,9 @@ void OptionsScreenUI::init() Log::warn("OptionsScreenUI", "Couldn't find current skin in the list of skins!"); skinSelector->setValue(0); + irr_driver->unsetMaxTextureSize(); GUIEngine::reloadSkin(); + irr_driver->setMaxTextureSize(); } // --- language @@ -265,7 +268,9 @@ void OptionsScreenUI::eventCallback(Widget* widget, const std::string& name, con const core::stringw selectedSkin = skinSelector->getStringValue(); UserConfigParams::m_skin_file = core::stringc(selectedSkin.c_str()).c_str() + std::string(".stkskin"); + irr_driver->unsetMaxTextureSize(); GUIEngine::reloadSkin(); + irr_driver->setMaxTextureSize(); } else if (name == "split_screen_horizontally") {