From 5b5fd87a8be6a9b08d4a55dee4db1e59865463cd Mon Sep 17 00:00:00 2001 From: samuncle Date: Wed, 4 Dec 2013 16:33:14 +0000 Subject: [PATCH] Add two per track parameter for color correction git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14633 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- src/graphics/callbacks.cpp | 6 +++--- src/tracks/track.cpp | 4 ++++ src/tracks/track.hpp | 11 +++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/graphics/callbacks.cpp b/src/graphics/callbacks.cpp index 2814d8437..49fe5d779 100644 --- a/src/graphics/callbacks.cpp +++ b/src/graphics/callbacks.cpp @@ -144,12 +144,12 @@ void GrassShaderProvider::OnSetConstants(IMaterialRendererServices *srv, int use void ColorLevelsProvider::OnSetConstants(IMaterialRendererServices *srv, int userData) { - m_inlevel = vector3df(0.0, 0.65, 137.0); - m_outlevel = vector2df(0.0, 255.0); + + m_inlevel = World::getWorld()->getTrack()->getColorLevelIn(); + m_outlevel = World::getWorld()->getTrack()->getColorLevelOut(); srv->setVertexShaderConstant("inlevel", &m_inlevel.X, 3); srv->setVertexShaderConstant("outlevel", &m_outlevel.X, 2); - if (!firstdone) { diff --git a/src/tracks/track.cpp b/src/tracks/track.cpp index e7d1c40c0..961e52646 100644 --- a/src/tracks/track.cpp +++ b/src/tracks/track.cpp @@ -114,6 +114,8 @@ Track::Track(const std::string &filename) m_mini_map = NULL; m_bloom = true; m_bloom_threshold = 0.75f; + m_color_inlevel = core::vector3df(0.0,1.0, 255.0); + m_color_outlevel = core::vector2df(0.0, 255.0); m_clouds = false; m_lensflare = false; m_godrays = false; @@ -371,6 +373,8 @@ void Track::loadTrackInfo() root->get("god-rays", &m_godrays); root->get("displacement-speed", &m_displacement_speed); root->get("caustics-speed", &m_caustics_speed); + root->get("color-level-in", &m_color_inlevel); + root->get("color-level-out", &m_color_outlevel); // Make the default for auto-rescue in battle mode and soccer mode to be false if(m_is_arena || m_is_soccer) diff --git a/src/tracks/track.hpp b/src/tracks/track.hpp index 01db425f5..862ac050f 100644 --- a/src/tracks/track.hpp +++ b/src/tracks/track.hpp @@ -380,6 +380,12 @@ private: float m_displacement_speed; float m_caustics_speed; + + /** The levels for color correction + * m_color_inlevel(black, gamma, white) + * m_color_outlevel(black, white)*/ + core::vector3df m_color_inlevel; + core::vector2df m_color_outlevel; /** List of all bezier curves in the track - for e.g. camera, ... */ std::vector m_all_curves; @@ -583,10 +589,15 @@ public: bool getBloom() const { return m_bloom; } float getBloomThreshold() const { return m_bloom_threshold; } + + /** Return the color levels for color correction shader */ + core::vector3df getColorLevelIn() const { return m_color_inlevel; } + core::vector2df getColorLevelOut() const { return m_color_outlevel; } bool hasLensFlare() const { return m_lensflare; } bool hasGodRays() const { return m_godrays; } bool hasShadows() const { return m_shadows; } + float getDisplacementSpeed() const { return m_displacement_speed; } float getCausticsSpeed() const { return m_caustics_speed; }