From a555e2d9b0ccee452996381a44677b8bec210036 Mon Sep 17 00:00:00 2001 From: gregorycu Date: Sat, 24 Jan 2015 13:03:57 +1100 Subject: Make the GameGlobalShaderConstantSetter use the settings callback (8% perf improvement in game loop) Amend the settings callback to support userdata --- src/settings.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/settings.cpp') 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 tempvector; + std::vector > 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::iterator iter; + std::vector >::iterator iter; for (iter = tempvector.begin(); iter != tempvector.end(); iter++) { - (*iter)(name); + (iter->first)(name,iter->second); } } -- cgit v1.2.3