From e08a252f038d15a96029864b9e295ae2aaaaefc5 Mon Sep 17 00:00:00 2001 From: Alexis Maiquez Date: Sat, 4 Dec 2021 23:15:56 +0100 Subject: [PATCH] + Added brightness reading for image objects Signed-off-by: Alexis Maiquez --- src/WallpaperEngine/Core/Objects/CImage.cpp | 15 ++++++++++++--- src/WallpaperEngine/Core/Objects/CImage.h | 5 ++++- .../Render/Objects/Effects/CPass.cpp | 4 ++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/WallpaperEngine/Core/Objects/CImage.cpp b/src/WallpaperEngine/Core/Objects/CImage.cpp index f462f40..e6fe9d1 100644 --- a/src/WallpaperEngine/Core/Objects/CImage.cpp +++ b/src/WallpaperEngine/Core/Objects/CImage.cpp @@ -18,13 +18,15 @@ CImage::CImage ( const glm::vec2& size, std::string alignment, const glm::vec3& color, - float alpha) : + float alpha, + float brightness) : CObject (visible, id, std::move(name), Type, origin, scale, angles), m_size (size), m_material (material), m_alignment (std::move(alignment)), m_color (color), - m_alpha (alpha) + m_alpha (alpha), + m_brightness (brightness) { } @@ -43,6 +45,7 @@ WallpaperEngine::Core::CObject* CImage::fromJSON ( auto alignment = jsonFindDefault (data, "alignment", "center"); auto alpha = jsonFindDefault (data, "alpha", 1.0); auto color_val = jsonFindDefault (data, "color", "1.0 1.0 1.0"); + auto brightness_val = jsonFindDefault (data, "brightness", 1.0); json content = json::parse (WallpaperEngine::FileSystem::loadFullFile ((*image_it).get (), container)); @@ -59,7 +62,8 @@ WallpaperEngine::Core::CObject* CImage::fromJSON ( WallpaperEngine::Core::aToVector2 (size_val), alignment, WallpaperEngine::Core::aToVector3 (color_val), - alpha + alpha, + brightness_val ); } @@ -88,4 +92,9 @@ const glm::vec3& CImage::getColor () const return this->m_color; } +const float CImage::getBrightness () const +{ + return this->m_brightness; +} + const std::string CImage::Type = "image"; \ No newline at end of file diff --git a/src/WallpaperEngine/Core/Objects/CImage.h b/src/WallpaperEngine/Core/Objects/CImage.h index 3adfec1..c759891 100644 --- a/src/WallpaperEngine/Core/Objects/CImage.h +++ b/src/WallpaperEngine/Core/Objects/CImage.h @@ -33,6 +33,7 @@ namespace WallpaperEngine::Core::Objects const std::string& getAlignment () const; const float getAlpha () const; const glm::vec3& getColor () const; + const float getBrightness () const; protected: CImage ( @@ -46,7 +47,8 @@ namespace WallpaperEngine::Core::Objects const glm::vec2& size, std::string alignment, const glm::vec3& color, - float alpha + float alpha, + float brightness ); static const std::string Type; @@ -56,6 +58,7 @@ namespace WallpaperEngine::Core::Objects Images::CMaterial* m_material; std::string m_alignment; float m_alpha; + float m_brightness; glm::vec3 m_color; }; }; diff --git a/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp b/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp index e2703dd..b355a6a 100644 --- a/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp +++ b/src/WallpaperEngine/Render/Objects/Effects/CPass.cpp @@ -465,8 +465,8 @@ void CPass::setupUniforms () } // register variables like brightness and alpha with some default value - this->addUniform ("g_Brightness", 1.0f); // TODO: GET FROM THE IMAGE - this->addUniform ("g_UserAlpha", 1.0f); + this->addUniform ("g_Brightness", this->m_material->getImage ()->getImage ()->getBrightness ()); + this->addUniform ("g_UserAlpha", this->m_material->getImage ()->getImage ()->getAlpha ()); this->addUniform ("g_Alpha", this->m_material->getImage ()->getImage ()->getAlpha ()); this->addUniform ("g_Color", this->m_material->getImage ()->getImage ()->getColor ()); // add some external variables