diff options
author | gregorycu <gregory.currie@gmail.com> | 2015-01-24 13:03:57 +1100 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2015-01-23 21:27:51 -0500 |
commit | a555e2d9b0ccee452996381a44677b8bec210036 (patch) | |
tree | b9a20391fba2c462701fd7547b9c66e0c7738289 /src/settings.cpp | |
parent | aafbbcd537abf5a31bba665d4255917c813f8dd3 (diff) | |
download | minetest-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.cpp | 10 |
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); } } |