From 8bc19b20ae64092d7cc9647b45f748c62f10689d Mon Sep 17 00:00:00 2001 From: Alexis Maiquez Date: Tue, 31 Aug 2021 02:51:10 +0200 Subject: [PATCH] + added support for the isVisible flag on images Signed-off-by: Alexis Maiquez --- src/WallpaperEngine/Core/CObject.cpp | 2 +- src/WallpaperEngine/Core/CObject.h | 2 +- src/WallpaperEngine/Render/CScene.cpp | 10 ---------- src/WallpaperEngine/Render/CScene.h | 2 -- src/WallpaperEngine/Render/Objects/CImage.cpp | 4 ++++ 5 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/WallpaperEngine/Core/CObject.cpp b/src/WallpaperEngine/Core/CObject.cpp index 9511dcc..ae7adc1 100644 --- a/src/WallpaperEngine/Core/CObject.cpp +++ b/src/WallpaperEngine/Core/CObject.cpp @@ -182,7 +182,7 @@ const std::vector& CObject::getDependencies () const return this->m_dependencies; } -bool CObject::isVisible () +const bool CObject::isVisible () const { return this->m_visible; } diff --git a/src/WallpaperEngine/Core/CObject.h b/src/WallpaperEngine/Core/CObject.h index 94b73d4..811be6e 100644 --- a/src/WallpaperEngine/Core/CObject.h +++ b/src/WallpaperEngine/Core/CObject.h @@ -34,7 +34,7 @@ namespace WallpaperEngine::Core const glm::vec3& getAngles () const; const std::string& getName () const; - bool isVisible (); + const bool isVisible () const; protected: CObject ( bool visible, diff --git a/src/WallpaperEngine/Render/CScene.cpp b/src/WallpaperEngine/Render/CScene.cpp index 0331bc3..cc1e14b 100644 --- a/src/WallpaperEngine/Render/CScene.cpp +++ b/src/WallpaperEngine/Render/CScene.cpp @@ -22,13 +22,8 @@ CScene::CScene (Core::CScene* scene, CContainer* container) : auto cur = scene->getObjects ().begin (); auto end = scene->getObjects ().end (); - int highestId = 0; - for (; cur != end; cur ++) { - if ((*cur)->getId () > highestId) - highestId = (*cur)->getId (); - CObject* object = nullptr; if ((*cur)->is() == true) @@ -50,11 +45,6 @@ CCamera* CScene::getCamera () const return this->m_camera; } -int CScene::nextId () -{ - return this->m_nextId ++; -} - void CScene::render () { auto cur = this->m_objects.begin (); diff --git a/src/WallpaperEngine/Render/CScene.h b/src/WallpaperEngine/Render/CScene.h index f37ec51..5ba1c6e 100644 --- a/src/WallpaperEngine/Render/CScene.h +++ b/src/WallpaperEngine/Render/CScene.h @@ -18,7 +18,6 @@ namespace WallpaperEngine::Render CScene (Core::CScene* scene, CContainer* container); CCamera* getCamera () const; - int nextId (); void render () override; @@ -31,7 +30,6 @@ namespace WallpaperEngine::Render private: CCamera* m_camera; - uint32_t m_nextId; std::vector m_objects; }; } diff --git a/src/WallpaperEngine/Render/Objects/CImage.cpp b/src/WallpaperEngine/Render/Objects/CImage.cpp index 15781f0..edbdd1d 100644 --- a/src/WallpaperEngine/Render/Objects/CImage.cpp +++ b/src/WallpaperEngine/Render/Objects/CImage.cpp @@ -121,6 +121,10 @@ CImage::CImage (CScene* scene, Core::Objects::CImage* image) : void CImage::render () { + // ensure this image is visible first + if (this->getImage ()->isVisible () == false) + return; + GLuint drawTo = 0; GLuint inputTexture = this->m_texture->getTextureID (); // get the orthogonal projection