}
m_cache_smooth_lighting = g_settings->getBool("smooth_lighting");
- m_cache_enable_shaders = g_settings->getBool("enable_shaders");
}
void Client::Stop()
Create a task to update the mesh of the block
*/
- MeshMakeData *data = new MeshMakeData(this, m_cache_enable_shaders);
+ MeshMakeData *data = new MeshMakeData(this);
{
//TimeTaker timer("data fill");
Database *localdb;
Server *localserver;
- // TODO: Add callback to update these when g_settings changes
+ // TODO: Add callback to update this when g_settings changes
bool m_cache_smooth_lighting;
- bool m_cache_enable_shaders;
};
#endif // !CLIENT_HEADER
scene::IMesh *node_mesh = NULL;
+ bool reenable_shaders = false;
+
if (need_rtt_mesh || need_wield_mesh) {
u8 param1 = 0;
if (f.param_type == CPT_LIGHT)
/*
Make a mesh from the node
*/
- MeshMakeData mesh_make_data(gamedef, false);
+ if (g_settings->getBool("enable_shaders")) {
+ reenable_shaders = true;
+ g_settings->setBool("enable_shaders", false);
+ }
+ MeshMakeData mesh_make_data(gamedef);
u8 param2 = 0;
if (f.param_type_2 == CPT2_WALLMOUNTED)
param2 = 1;
if (node_mesh)
node_mesh->drop();
+
+ if (reenable_shaders)
+ g_settings->setBool("enable_shaders",true);
}
// Put in cache
MeshMakeData
*/
-MeshMakeData::MeshMakeData(IGameDef *gamedef, bool use_shaders):
+MeshMakeData::MeshMakeData(IGameDef *gamedef):
m_vmanip(),
m_blockpos(-1337,-1337,-1337),
m_crack_pos_relative(-1337, -1337, -1337),
m_smooth_lighting(false),
m_show_hud(false),
m_highlight_mesh_color(255, 255, 255, 255),
- m_gamedef(gamedef),
- m_use_shaders(use_shaders)
+ m_gamedef(gamedef)
{}
void MeshMakeData::fill(MapBlock *block)
video::SColor m_highlight_mesh_color;
IGameDef *m_gamedef;
- bool m_use_shaders;
- MeshMakeData(IGameDef *gamedef, bool use_shaders);
+ MeshMakeData(IGameDef *gamedef);
/*
Copy central data directly from block, and other data from
} else if (f.drawtype == NDT_NORMAL || f.drawtype == NDT_ALLFACES) {
setCube(f.tiles, def.wield_scale, tsrc);
} else {
- //// TODO: Change false in the following constructor args to
- //// appropriate value when shader is added for wield items (if applicable)
- MeshMakeData mesh_make_data(gamedef, false);
+ MeshMakeData mesh_make_data(gamedef);
MapNode mesh_make_node(id, 255, 0);
mesh_make_data.fillSingleNode(&mesh_make_node);
MapBlockMesh mapblock_mesh(&mesh_make_data, v3s16(0, 0, 0));