diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f97323e2..dd809b58c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -545,11 +545,6 @@ endif() # Components add_subdirectory (components) -# Plugins -#if (BUILD_MYGUI_PLUGIN) -# add_subdirectory(plugins/mygui_resource_plugin) -#endif() - # Apps and tools if (BUILD_OPENMW) add_subdirectory( apps/openmw ) diff --git a/plugins/mygui_resource_plugin/CMakeLists.txt b/plugins/mygui_resource_plugin/CMakeLists.txt deleted file mode 100644 index be834b17d..000000000 --- a/plugins/mygui_resource_plugin/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set (MYGUI_RESOURCE_PLUGIN_SOURCES - plugin.hpp - plugin.cpp - plugin_export.cpp -) - -set (MYGUI_RESOURCE_PLUGIN_LIBRARY - Plugin_MyGUI_OpenMW_Resources -) - -add_definitions("-D_USRDLL -DMYGUI_BUILD_DLL") - -add_library(${MYGUI_RESOURCE_PLUGIN_LIBRARY} - SHARED - ${MYGUI_RESOURCE_PLUGIN_SOURCES} - ) - -if(WIN32) - if(MSVC) - # from top-level CMakelists.txt: - # 4305 - Truncating value (double to float, for example) - set_target_properties(${MYGUI_RESOURCE_PLUGIN_LIBRARY} PROPERTIES COMPILE_FLAGS "/wd4305") - endif(MSVC) -endif(WIN32) - -set_target_properties(${MYGUI_RESOURCE_PLUGIN_LIBRARY} PROPERTIES PREFIX "") - -target_link_libraries(${MYGUI_RESOURCE_PLUGIN_LIBRARY} - ${OGRE_LIBRARIES} - components -) diff --git a/plugins/mygui_resource_plugin/plugin.cpp b/plugins/mygui_resource_plugin/plugin.cpp deleted file mode 100644 index 1b718b547..000000000 --- a/plugins/mygui_resource_plugin/plugin.cpp +++ /dev/null @@ -1,183 +0,0 @@ -#include "plugin.hpp" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include -#include - -//FIXME: code duplication -namespace boost -{ -struct FallbackMap { - std::map mMap; -}; - -void validate(boost::any &v, std::vector const &tokens, FallbackMap*, int) -{ - if(v.empty()) - { - v = boost::any(FallbackMap()); - } - - FallbackMap *map = boost::any_cast(&v); - - for(std::vector::const_iterator it=tokens.begin(); it != tokens.end(); ++it) - { - int sep = it->find(","); - if(sep < 1 || sep == (int)it->length()-1) -#if (BOOST_VERSION < 104200) - throw boost::program_options::validation_error("invalid value"); -#else - throw boost::program_options::validation_error(boost::program_options::validation_error::invalid_option_value); -#endif - - std::string key(it->substr(0,sep)); - std::string value(it->substr(sep+1)); - - if(map->mMap.find(key) == map->mMap.end()) - { - map->mMap.insert(std::make_pair (key,value)); - } - } -} -} - -namespace MyGUIPlugin -{ - - // Dummy - obsolete when using MyGUI git, because the ScrollBar there has autorepeat support added. - class MWScrollBar : public MyGUI::ScrollBar - { - MYGUI_RTTI_DERIVED(MWScrollBar) - }; - - const std::string& ResourcePlugin::getName() const - { - static const std::string name = "OpenMW resource plugin"; - return name; - } - - void ResourcePlugin::install() - { - - } - void ResourcePlugin::uninstall() - { - - } - - void ResourcePlugin::registerResources() - { - boost::program_options::variables_map variables; - - boost::program_options::options_description desc("Allowed options"); - desc.add_options() - ("data", boost::program_options::value()->default_value(Files::PathContainer(), "data")->multitoken()->composing()) - ("data-local", boost::program_options::value()->default_value("")) - ("fs-strict", boost::program_options::value()->implicit_value(true)->default_value(false)) - ("fallback-archive", boost::program_options::value >()-> - default_value(std::vector(), "fallback-archive")->multitoken()) - ("encoding", boost::program_options::value()->default_value("win1252")) - ("fallback", boost::program_options::value()->default_value(boost::FallbackMap(), "") - ->multitoken()->composing(), "fallback values"); - - boost::program_options::notify(variables); - - Files::ConfigurationManager cfgManager; - cfgManager.readConfiguration(variables, desc); - - std::vector archives = variables["fallback-archive"].as >(); - bool fsStrict = variables["fs-strict"].as(); - - Files::PathContainer dataDirs, dataLocal; - if (!variables["data"].empty()) { - dataDirs = Files::PathContainer(variables["data"].as()); - } - - std::string local = variables["data-local"].as(); - if (!local.empty()) { - dataLocal.push_back(Files::PathContainer::value_type(local)); - } - - cfgManager.processPaths (dataDirs); - cfgManager.processPaths (dataLocal, true); - - if (!dataLocal.empty()) - dataDirs.insert (dataDirs.end(), dataLocal.begin(), dataLocal.end()); - - Files::Collections collections (dataDirs, !fsStrict); - - Bsa::registerResources(collections, archives, true, fsStrict); - - std::string encoding(variables["encoding"].as()); - std::cout << ToUTF8::encodingUsingMessage(encoding) << std::endl; - - Gui::FontLoader loader(ToUTF8::calculateEncoding(encoding)); - loader.loadAllFonts(false); - - mFallbackMap = variables["fallback"].as().mMap; - } - - void ResourcePlugin::registerWidgets() - { - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - - Gui::registerAllWidgets(); - } - - void ResourcePlugin::createTransparentBGTexture() - { - // This texture is manually created in OpenMW to be able to change its opacity at runtime in the options menu - Ogre::TexturePtr tex = Ogre::TextureManager::getSingleton().createManual( - "transparent.png", - Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, - Ogre::TEX_TYPE_2D, - 1, 1, - 0, - Ogre::PF_A8R8G8B8, - Ogre::TU_WRITE_ONLY); - std::vector buffer; - buffer.resize(1); - const float val = 0.7; - buffer[0] = (int(255*val) << 24) | (255 << 16) | (255 << 8) | 255; - memcpy(tex->getBuffer()->lock(Ogre::HardwareBuffer::HBL_DISCARD), &buffer[0], 1*4); - tex->getBuffer()->unlock(); - } - - void ResourcePlugin::initialize() - { - MYGUI_LOGGING("OpenMW_Resource_Plugin", Info, "initialize"); - - registerResources(); - registerWidgets(); - createTransparentBGTexture(); - - MyGUI::LanguageManager::getInstance().eventRequestTag = MyGUI::newDelegate(this, &ResourcePlugin::onRetrieveTag); - } - - void ResourcePlugin::shutdown() - { - /// \todo cleanup - - MYGUI_LOGGING("OpenMW_Resource_Plugin", Info, "shutdown"); - } - - void ResourcePlugin::onRetrieveTag(const MyGUI::UString& tag, MyGUI::UString& out) - { - if (!Gui::replaceTag(tag, out, mFallbackMap)) - out = tag; - } - -} diff --git a/plugins/mygui_resource_plugin/plugin.hpp b/plugins/mygui_resource_plugin/plugin.hpp deleted file mode 100644 index 6a06060d9..000000000 --- a/plugins/mygui_resource_plugin/plugin.hpp +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef OPENMW_MYGUI_RESOURCE_PLUGIN_H -#define OPENMW_MYGUI_RESOURCE_PLUGIN_H - -#include -#include - -namespace MyGUIPlugin -{ - - /** - * @brief MyGUI plugin used to register Morrowind resources, custom widgets used in OpenMW, and load Morrowind fonts. - * @paragraph The plugin isn't used in OpenMW itself, but it is useful with the standalone MyGUI tools. To use it, - * change EditorPlugin.xml in Media/Tools/LayoutEditor/EditorPlugin.xml and add an entry for this plugin. - */ - class ResourcePlugin : public MyGUI::IPlugin - { - /*! Get the name of the plugin. - @remarks An implementation must be supplied for this method to uniquely - identify the plugin - */ - virtual const std::string& getName() const; - - /*! Perform the plugin initial installation sequence - */ - virtual void install(); - - /*! Perform any tasks the plugin needs to perform on full system - initialisation. - */ - virtual void initialize(); - - /*! Perform any tasks the plugin needs to perform when the system is shut down - */ - virtual void shutdown(); - - /*! Perform the final plugin uninstallation sequence - */ - virtual void uninstall(); - - private: - void registerResources(); - void registerWidgets(); - void createTransparentBGTexture(); - - void onRetrieveTag(const MyGUI::UString& tag, MyGUI::UString& out); - - std::map mFallbackMap; - }; - -} - -#endif diff --git a/plugins/mygui_resource_plugin/plugin_export.cpp b/plugins/mygui_resource_plugin/plugin_export.cpp deleted file mode 100644 index 0d6b4b804..000000000 --- a/plugins/mygui_resource_plugin/plugin_export.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "plugin.hpp" -#include "MyGUI_PluginManager.h" - -MyGUIPlugin::ResourcePlugin* plugin_item = nullptr; - -extern "C" MYGUI_EXPORT_DLL void dllStartPlugin(void) -{ - plugin_item = new MyGUIPlugin::ResourcePlugin(); - MyGUI::PluginManager::getInstance().installPlugin(plugin_item); -} - -extern "C" MYGUI_EXPORT_DLL void dllStopPlugin(void) -{ - MyGUI::PluginManager::getInstance().uninstallPlugin(plugin_item); - delete plugin_item; - plugin_item = nullptr; -}