diff --git a/src/render/software/LightingManager.cpp b/src/render/software/LightingManager.cpp index 2c89eb3..0430823 100644 --- a/src/render/software/LightingManager.cpp +++ b/src/render/software/LightingManager.cpp @@ -12,7 +12,7 @@ LightingManager::LightingManager() void LightingManager::registerFilter(LightFilter* filter) { - filters.insert(filter); + filters.push_back(filter); } bool LightingManager::alterLight(LightComponent &component, const Vector3 &location) diff --git a/src/render/software/LightingManager.h b/src/render/software/LightingManager.h index 2d9d9d6..8142abe 100644 --- a/src/render/software/LightingManager.h +++ b/src/render/software/LightingManager.h @@ -3,8 +3,6 @@ #include "software_global.h" -#include - namespace paysages { namespace software { @@ -42,7 +40,7 @@ public: private: int specularity; - std::set filters; + std::vector filters; }; } diff --git a/src/render/software/SoftwareRenderer.cpp b/src/render/software/SoftwareRenderer.cpp index 548858c..b53ba5d 100644 --- a/src/render/software/SoftwareRenderer.cpp +++ b/src/render/software/SoftwareRenderer.cpp @@ -36,8 +36,8 @@ SoftwareRenderer::SoftwareRenderer(Scenery* scenery) fluid_medium = new FluidMediumManager(this); lighting = new LightingManager(); - lighting->registerFilter(terrain_renderer); lighting->registerFilter(water_renderer); + lighting->registerFilter(terrain_renderer); lighting->registerFilter(clouds_renderer); this->scenery = new Scenery; diff --git a/src/render/software/WaterRenderer.cpp b/src/render/software/WaterRenderer.cpp index 189b640..1562a66 100644 --- a/src/render/software/WaterRenderer.cpp +++ b/src/render/software/WaterRenderer.cpp @@ -263,7 +263,7 @@ bool WaterRenderer::applyLightFilter(LightComponent &light, const Vector3 &at) light.color.b *= factor; light.reflection *= factor; - return true; + return factor > 0.0; } else {