Add enable_2d_clouds setting for usage on lower-end machines
authorPerttu Ahola <celeron55@gmail.com>
Tue, 18 Oct 2011 20:55:55 +0000 (23:55 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Tue, 18 Oct 2011 20:55:55 +0000 (23:55 +0300)
src/clouds.cpp
src/defaultsettings.cpp

index 8981b42d9335b3eb0eaa14753ba3b62d1bbc4bec..063a4b1117cf3ec1bb939781c08ca14c54681158 100644 (file)
@@ -21,8 +21,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "noise.h"
 #include "constants.h"
 #include "debug.h"
+#include "main.h" // For g_profiler and g_settings
 #include "profiler.h"
-#include "main.h" // For g_profiler
+#include "settings.h"
 
 Clouds::Clouds(
                scene::ISceneNode* parent,
@@ -80,6 +81,10 @@ void Clouds::render()
 
        ScopeProfiler sp(g_profiler, "Rendering of clouds, avg", SPT_AVG);
 
+       int num_faces_to_draw = 6;
+       if(g_settings->getBool("enable_2d_clouds"))
+               num_faces_to_draw = 1;
+
        driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
        driver->setMaterial(m_material);
        
@@ -148,7 +153,7 @@ void Clouds::render()
                f32 ry = 8*BS;
                f32 rz = cloud_size;
 
-               for(int i=0;i<6;i++)
+               for(int i=0; i<num_faces_to_draw; i++)
                {
                        switch(i)
                        {
index d88440812f6c0f75c2fc28196922382c702c902f..8429ff22cba04583bedf085c26e0a503c92a35fa 100644 (file)
@@ -77,6 +77,7 @@ void set_default_settings(Settings *settings)
        settings->setDefault("invisible_stone", "false");
        settings->setDefault("screenshot_path", ".");
        settings->setDefault("view_bobbing_amount", "1.0");
+       settings->setDefault("enable_2d_clouds", "false");
 
        // Server stuff
        // "map-dir" doesn't exist by default.