mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-05-02 14:57:59 +03:00
Sync extern/shiny, set memory budgets for texture and mesh managers (however this has no effect yet and depends on changes in Ogre being made)
This commit is contained in:
parent
28ef4d97da
commit
75dcf52552
25 changed files with 649 additions and 258 deletions
48
extern/shiny/Main/PropertyBase.cpp
vendored
48
extern/shiny/Main/PropertyBase.cpp
vendored
|
@ -6,6 +6,8 @@
|
|||
#include <boost/lexical_cast.hpp>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
#include <fstream>
|
||||
|
||||
namespace sh
|
||||
{
|
||||
|
||||
|
@ -39,8 +41,9 @@ namespace sh
|
|||
mValue = false;
|
||||
else
|
||||
{
|
||||
std::cerr << "sh::BooleanValue: Warning: Unrecognized value \"" << in << "\" for property value of type BooleanValue" << std::endl;
|
||||
mValue = false;
|
||||
std::stringstream msg;
|
||||
msg << "sh::BooleanValue: Warning: Unrecognized value \"" << in << "\" for property value of type BooleanValue";
|
||||
throw std::runtime_error(msg.str());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -183,12 +186,16 @@ namespace sh
|
|||
void PropertySet::setProperty (const std::string& name, PropertyValuePtr &value, PropertySetGet* context)
|
||||
{
|
||||
if (!setPropertyOverride (name, value, context))
|
||||
std::cerr << "sh::PropertySet: Warning: No match for property with name '" << name << "'" << std::endl;
|
||||
{
|
||||
std::stringstream msg;
|
||||
msg << "sh::PropertySet: Warning: No match for property with name '" << name << "'";
|
||||
throw std::runtime_error(msg.str());
|
||||
}
|
||||
}
|
||||
|
||||
bool PropertySet::setPropertyOverride (const std::string& name, PropertyValuePtr &value, PropertySetGet* context)
|
||||
{
|
||||
// if we got here, none of the sub-classes was able to make use of the property
|
||||
// if we got here, none of the sub-classes were able to make use of the property
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -226,6 +233,11 @@ namespace sh
|
|||
mProperties [name] = value;
|
||||
}
|
||||
|
||||
void PropertySetGet::deleteProperty(const std::string &name)
|
||||
{
|
||||
mProperties.erase(name);
|
||||
}
|
||||
|
||||
PropertyValuePtr& PropertySetGet::getProperty (const std::string& name)
|
||||
{
|
||||
bool found = (mProperties.find(name) != mProperties.end());
|
||||
|
@ -241,7 +253,7 @@ namespace sh
|
|||
return mProperties[name];
|
||||
}
|
||||
|
||||
bool PropertySetGet::hasProperty (const std::string& name)
|
||||
bool PropertySetGet::hasProperty (const std::string& name) const
|
||||
{
|
||||
bool found = (mProperties.find(name) != mProperties.end());
|
||||
|
||||
|
@ -256,13 +268,35 @@ namespace sh
|
|||
return true;
|
||||
}
|
||||
|
||||
void PropertySetGet::copyAll (PropertySet* target, PropertySetGet* context)
|
||||
void PropertySetGet::copyAll (PropertySet* target, PropertySetGet* context, bool copyParent)
|
||||
{
|
||||
if (mParent)
|
||||
if (mParent && copyParent)
|
||||
mParent->copyAll (target, context);
|
||||
for (PropertyMap::iterator it = mProperties.begin(); it != mProperties.end(); ++it)
|
||||
{
|
||||
target->setProperty(it->first, it->second, context);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertySetGet::copyAll (PropertySetGet* target, PropertySetGet* context, bool copyParent)
|
||||
{
|
||||
if (mParent && copyParent)
|
||||
mParent->copyAll (target, context);
|
||||
for (PropertyMap::iterator it = mProperties.begin(); it != mProperties.end(); ++it)
|
||||
{
|
||||
std::string val = retrieveValue<StringValue>(it->second, this).get();
|
||||
target->setProperty(it->first, sh::makeProperty(new sh::StringValue(val)));
|
||||
}
|
||||
}
|
||||
|
||||
void PropertySetGet::save(std::ofstream &stream, const std::string& indentation)
|
||||
{
|
||||
for (PropertyMap::iterator it = mProperties.begin(); it != mProperties.end(); ++it)
|
||||
{
|
||||
if (typeid( *(it->second) ) == typeid(LinkedValue))
|
||||
stream << indentation << it->first << " " << "$" + static_cast<LinkedValue*>(&*(it->second))->_getStringValue() << '\n';
|
||||
else
|
||||
stream << indentation << it->first << " " << retrieveValue<StringValue>(it->second, this).get() << '\n';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue