Skip to content

Commit

Permalink
Revert "Make the GameGlobalShaderConstantSetter use the settings call…
Browse files Browse the repository at this point in the history
…back (8% perf improvement in game loop)"

This reverts commit a555e2d.
  • Loading branch information
Zeno- committed Jan 24, 2015
1 parent 800d192 commit 2c4a5e1
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 27 deletions.
2 changes: 1 addition & 1 deletion src/fontengine.cpp
Expand Up @@ -36,7 +36,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
FontEngine* g_fontengine = NULL;

/** callback to be used on change of font size setting */
static void font_setting_changed(const std::string, void *userdata) {
static void font_setting_changed(const std::string) {
g_fontengine->readSettings();
}

Expand Down
20 changes: 2 additions & 18 deletions src/game.cpp
Expand Up @@ -809,31 +809,15 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter
bool *m_force_fog_off;
f32 *m_fog_range;
Client *m_client;
bool m_fogEnabled;

public:

void onSettingsChange(const std::string &name)
{
if (name == "enable_fog")
m_fogEnabled = g_settings->getBool("enable_fog");
}

static void SettingsCallback(const std::string name, void *userdata)
{
reinterpret_cast<GameGlobalShaderConstantSetter*>(userdata)->onSettingsChange(name);
}

GameGlobalShaderConstantSetter(Sky *sky, bool *force_fog_off,
f32 *fog_range, Client *client) :
m_sky(sky),
m_force_fog_off(force_fog_off),
m_fog_range(fog_range),
m_client(client)
{
g_settings->registerChangedCallback("enable_fog", SettingsCallback, this);
}

{}
~GameGlobalShaderConstantSetter() {}

virtual void onSetConstants(video::IMaterialRendererServices *services,
Expand All @@ -856,7 +840,7 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter
// Fog distance
float fog_distance = 10000 * BS;

if (m_fogEnabled && !*m_force_fog_off)
if (g_settings->getBool("enable_fog") && !*m_force_fog_off)
fog_distance = *m_fog_range;

services->setPixelShaderConstant("fogDistance", &fog_distance, 1);
Expand Down
10 changes: 5 additions & 5 deletions src/settings.cpp
Expand Up @@ -965,15 +965,15 @@ void Settings::clearNoLock()


void Settings::registerChangedCallback(std::string name,
setting_changed_callback cbf, void *userdata)
setting_changed_callback cbf)
{
m_callbacks[name].push_back(std::make_pair(cbf,userdata));
m_callbacks[name].push_back(cbf);
}


void Settings::doCallbacks(const std::string name)
{
std::vector<std::pair<setting_changed_callback,void*> > tempvector;
std::vector<setting_changed_callback> tempvector;
{
JMutexAutoLock lock(m_mutex);
if (m_callbacks.find(name) != m_callbacks.end())
Expand All @@ -982,9 +982,9 @@ void Settings::doCallbacks(const std::string name)
}
}

std::vector<std::pair<setting_changed_callback, void*> >::iterator iter;
std::vector<setting_changed_callback>::iterator iter;
for (iter = tempvector.begin(); iter != tempvector.end(); iter++)
{
(iter->first)(name,iter->second);
(*iter)(name);
}
}
6 changes: 3 additions & 3 deletions src/settings.h
Expand Up @@ -32,7 +32,7 @@ class Settings;
struct NoiseParams;

/** function type to register a changed callback */
typedef void (*setting_changed_callback)(const std::string, void *userdata);
typedef void (*setting_changed_callback)(const std::string);

enum ValueType {
VALUETYPE_STRING,
Expand Down Expand Up @@ -204,7 +204,7 @@ class Settings {
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 *userdata = NULL);
void registerChangedCallback(std::string name, setting_changed_callback cbf);

private:

Expand All @@ -215,7 +215,7 @@ class Settings {

std::map<std::string, SettingsEntry> m_settings;
std::map<std::string, SettingsEntry> m_defaults;
std::map<std::string, std::vector<std::pair<setting_changed_callback,void*> > > m_callbacks;
std::map<std::string, std::vector<setting_changed_callback> > m_callbacks;
// All methods that access m_settings/m_defaults directly should lock this.
mutable JMutex m_mutex;
};
Expand Down

1 comment on commit 2c4a5e1

@Zeno-
Copy link
Contributor Author

@Zeno- Zeno- commented on 2c4a5e1 Jan 24, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see also #2193

Please sign in to comment.