summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorgregorycu <gregory.currie@gmail.com>2015-01-24 13:03:57 +1100
committerkwolekr <kwolekr@minetest.net>2015-01-23 21:27:51 -0500
commita555e2d9b0ccee452996381a44677b8bec210036 (patch)
treeb9a20391fba2c462701fd7547b9c66e0c7738289 /src/settings.cpp
parentaafbbcd537abf5a31bba665d4255917c813f8dd3 (diff)
downloadminetest-a555e2d9b0ccee452996381a44677b8bec210036.tar.gz
minetest-a555e2d9b0ccee452996381a44677b8bec210036.tar.bz2
minetest-a555e2d9b0ccee452996381a44677b8bec210036.zip
Make the GameGlobalShaderConstantSetter use the settings callback (8% perf improvement in game loop)
Amend the settings callback to support userdata
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 2f515caba..3416066e2 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -965,15 +965,15 @@ void Settings::clearNoLock()
void Settings::registerChangedCallback(std::string name,
- setting_changed_callback cbf)
+ setting_changed_callback cbf, void *userdata)
{
- m_callbacks[name].push_back(cbf);
+ m_callbacks[name].push_back(std::make_pair(cbf,userdata));
}
void Settings::doCallbacks(const std::string name)
{
- std::vector<setting_changed_callback> tempvector;
+ std::vector<std::pair<setting_changed_callback,void*> > tempvector;
{
JMutexAutoLock lock(m_mutex);
if (m_callbacks.find(name) != m_callbacks.end())
@@ -982,9 +982,9 @@ void Settings::doCallbacks(const std::string name)
}
}
- std::vector<setting_changed_callback>::iterator iter;
+ std::vector<std::pair<setting_changed_callback, void*> >::iterator iter;
for (iter = tempvector.begin(); iter != tempvector.end(); iter++)
{
- (*iter)(name);
+ (iter->first)(name,iter->second);
}
}