From f789c1103856a253871846da6e41fcdf7aacd78b Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Thu, 24 Oct 2024 15:34:55 -0400 Subject: Always load but don't draw invisible objects Signed-off-by: Andrew Opalach --- flake.lock | 6 +++--- flake.nix | 2 +- scripts/random.sh | 4 ++-- src/objects/object.cc | 2 +- src/objects/scene.cc | 4 +++- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/flake.lock b/flake.lock index cb5aefe..be75f57 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1729070438, - "narHash": "sha256-KOTTUfPkugH52avUvXGxvWy8ibKKj4genodIYUED+Kc=", + "lastModified": 1729665710, + "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5785b6bb5eaae44e627d541023034e1601455827", + "rev": "2768c7d042a37de65bb1b5b3268fc987e534c49d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 4a0f83d..a9a8a1a 100644 --- a/flake.nix +++ b/flake.nix @@ -109,7 +109,7 @@ vulkan-headers vulkan-loader glslang - libseat + seatd libdisplay-info libliftoff hwdata diff --git a/scripts/random.sh b/scripts/random.sh index 2f097cb..44a00a1 100755 --- a/scripts/random.sh +++ b/scripts/random.sh @@ -1,7 +1,7 @@ #! /usr/bin/env bash BUILD_DIR=build -WALLPAPERS_PATH=workshop_wallpapers +WALLPAPERS_PATH=workshop_wallpapers_11-8-21 while : ; do DIR=$(find $WALLPAPERS_PATH -mindepth 1 -maxdepth 1 -type d -print0 | shuf -zn1 | xargs --null) @@ -21,5 +21,5 @@ done echo $DIR cd $BUILD_DIR -./mauri -p ../$DIR/scene.pkg -w 1600 -h 900 +./mauri -p ../$DIR/scene.pkg -a /mnt/hdd/SteamLibrary/steamapps/common/wallpaper_engine/assets -w 1600 -h 900 cd .. diff --git a/src/objects/object.cc b/src/objects/object.cc index d648b63..4cf9790 100644 --- a/src/objects/object.cc +++ b/src/objects/object.cc @@ -209,7 +209,7 @@ auto Object::draw_internal(Engine *engine) -> void for (Effect *effect : this->effects) { - effect->draw(engine); + if (effect->visible) effect->draw(engine); } } diff --git a/src/objects/scene.cc b/src/objects/scene.cc index 21a2449..b9728c7 100644 --- a/src/objects/scene.cc +++ b/src/objects/scene.cc @@ -57,6 +57,7 @@ auto Scene::get_object_by_id(u32 id) -> Object * auto Scene::load(Engine *engine) -> void { + /* NOTE: Removing objects here is known to cause issues. if (this->objects.size() > 0) { for (auto it = this->objects.begin(); it != this->objects.end();) @@ -65,6 +66,7 @@ auto Scene::load(Engine *engine) -> void else it++; } } + */ for (Object *object : this->objects) { @@ -76,7 +78,7 @@ auto Scene::draw(Engine *engine) -> void { for (Object *object : this->objects) { - if (!object->loaded_as_dep) object->draw(engine); + if (!object->loaded_as_dep && object->visible) object->draw(engine); } } -- cgit v1.2.3-101-g0448