1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 19:19:56 +00:00

Delete old mygui_resource_plugin which is unlikely to be brought back in its current form because resources can't be accessed by MyGUI's editor if not using the Ogre resources system.

This commit is contained in:
scrawl 2018-04-15 13:20:53 +00:00
parent 6c79c0fb35
commit 789f552ad4
No known key found for this signature in database
GPG key ID: 2E6CC3676024C402
5 changed files with 0 additions and 288 deletions

View file

@ -545,11 +545,6 @@ endif()
# Components # Components
add_subdirectory (components) add_subdirectory (components)
# Plugins
#if (BUILD_MYGUI_PLUGIN)
# add_subdirectory(plugins/mygui_resource_plugin)
#endif()
# Apps and tools # Apps and tools
if (BUILD_OPENMW) if (BUILD_OPENMW)
add_subdirectory( apps/openmw ) add_subdirectory( apps/openmw )

View file

@ -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
)

View file

@ -1,183 +0,0 @@
#include "plugin.hpp"
#include <MyGUI_LogManager.h>
#include <MyGUI_FactoryManager.h>
#include <MyGUI_ScrollBar.h>
#include <MyGUI_Gui.h>
#include <MyGUI_Window.h>
#include <MyGUI_LanguageManager.h>
#include <components/bsa/resources.hpp>
#include <components/files/configurationmanager.hpp>
#include <components/fontloader/fontloader.hpp>
#include <components/widgets/tags.hpp>
#include <components/widgets/widgets.hpp>
#include <OgreTextureManager.h>
#include <OgreHardwarePixelBuffer.h>
//FIXME: code duplication
namespace boost
{
struct FallbackMap {
std::map<std::string,std::string> mMap;
};
void validate(boost::any &v, std::vector<std::string> const &tokens, FallbackMap*, int)
{
if(v.empty())
{
v = boost::any(FallbackMap());
}
FallbackMap *map = boost::any_cast<FallbackMap>(&v);
for(std::vector<std::string>::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<Files::PathContainer>()->default_value(Files::PathContainer(), "data")->multitoken()->composing())
("data-local", boost::program_options::value<std::string>()->default_value(""))
("fs-strict", boost::program_options::value<bool>()->implicit_value(true)->default_value(false))
("fallback-archive", boost::program_options::value<std::vector<std::string> >()->
default_value(std::vector<std::string>(), "fallback-archive")->multitoken())
("encoding", boost::program_options::value<std::string>()->default_value("win1252"))
("fallback", boost::program_options::value<boost::FallbackMap>()->default_value(boost::FallbackMap(), "")
->multitoken()->composing(), "fallback values");
boost::program_options::notify(variables);
Files::ConfigurationManager cfgManager;
cfgManager.readConfiguration(variables, desc);
std::vector<std::string> archives = variables["fallback-archive"].as<std::vector<std::string> >();
bool fsStrict = variables["fs-strict"].as<bool>();
Files::PathContainer dataDirs, dataLocal;
if (!variables["data"].empty()) {
dataDirs = Files::PathContainer(variables["data"].as<Files::PathContainer>());
}
std::string local = variables["data-local"].as<std::string>();
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::string>());
std::cout << ToUTF8::encodingUsingMessage(encoding) << std::endl;
Gui::FontLoader loader(ToUTF8::calculateEncoding(encoding));
loader.loadAllFonts(false);
mFallbackMap = variables["fallback"].as<boost::FallbackMap>().mMap;
}
void ResourcePlugin::registerWidgets()
{
MyGUI::FactoryManager::getInstance().registerFactory<MWScrollBar>("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<Ogre::uint32> 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;
}
}

View file

@ -1,52 +0,0 @@
#ifndef OPENMW_MYGUI_RESOURCE_PLUGIN_H
#define OPENMW_MYGUI_RESOURCE_PLUGIN_H
#include <MyGUI_Plugin.h>
#include <MyGUI_UString.h>
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<std::string, std::string> mFallbackMap;
};
}
#endif

View file

@ -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;
}