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.h | |
parent | aafbbcd537abf5a31bba665d4255917c813f8dd3 (diff) | |
download | hax-minetest-server-a555e2d9b0ccee452996381a44677b8bec210036.tar.gz hax-minetest-server-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 '')
-rw-r--r-- | src/settings.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/settings.h b/src/settings.h index 89f7589df..47feb1755 100644 --- a/src/settings.h +++ b/src/settings.h @@ -32,7 +32,7 @@ class Settings; struct NoiseParams; /** function type to register a changed callback */ -typedef void (*setting_changed_callback)(const std::string); +typedef void (*setting_changed_callback)(const std::string, void *userdata); enum ValueType { VALUETYPE_STRING, @@ -204,7 +204,7 @@ public: void clear(); void updateValue(const Settings &other, const std::string &name); void update(const Settings &other); - void registerChangedCallback(std::string name, setting_changed_callback cbf); + void registerChangedCallback(std::string name, setting_changed_callback cbf, void *userdata = NULL); private: @@ -215,7 +215,7 @@ private: std::map<std::string, SettingsEntry> m_settings; std::map<std::string, SettingsEntry> m_defaults; - std::map<std::string, std::vector<setting_changed_callback> > m_callbacks; + std::map<std::string, std::vector<std::pair<setting_changed_callback,void*> > > m_callbacks; // All methods that access m_settings/m_defaults directly should lock this. mutable JMutex m_mutex; }; |