diff --git a/CMakeLists.txt b/CMakeLists.txt index 4165403..24002cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ include (cmake/CPM.cmake) CPMAddPackage( NAME JGL - URL https://git.redacted.cc/josh/JGL/archive/Prerelease-44.zip + URL https://git.redacted.cc/josh/JGL/archive/Prerelease-45.zip ) CPMAddPackage( diff --git a/assets/sprites/alpha_mask.png b/assets/sprites/alpha_mask.png new file mode 100644 index 0000000..3e46111 Binary files /dev/null and b/assets/sprites/alpha_mask.png differ diff --git a/include/Game/entity/Box.h b/include/Game/entity/Box.h index 6ea9cf8..a964b80 100644 --- a/include/Game/entity/Box.h +++ b/include/Game/entity/Box.h @@ -10,5 +10,5 @@ class Game::Box final : public Engine::InstancedSprite { public: void Update() final; public: - explicit Box(const Vector2& position, unsigned int depth = 0, float rad_rotation = 0.0f) : Engine::InstancedSprite(position, depth, "assets/sprites/Re3D.png", rad_rotation) {} + explicit Box(const Vector2& position, unsigned int depth = 0, float rad_rotation = 0.0f) : Engine::InstancedSprite(position, depth, "assets/sprites/Re3D.png", rad_rotation, Colors::White, nullptr, "assets/sprites/alpha_mask.png") {} }; \ No newline at end of file diff --git a/src/Engine/types/entity/InstancedSprite.cpp b/src/Engine/types/entity/InstancedSprite.cpp index 9d47f30..e6fea0a 100644 --- a/src/Engine/types/entity/InstancedSprite.cpp +++ b/src/Engine/types/entity/InstancedSprite.cpp @@ -6,19 +6,14 @@ Texture* InstancedSprite::GetTexture() { auto* itx = Globals::CurrentScene->GetInstancedTexture(this); if (itx) return itx->GetTexture(); - return nullptr; } Texture* InstancedSprite::GetAlphaMask() { - if (Sprite::GetAlphaMask()) - return Sprite::GetAlphaMask(); - auto* ita = Globals::CurrentScene->GetInstancedAlphaMask(this); if (ita) return ita->GetTexture(); - - return nullptr; + return Sprite::GetAlphaMask(); } InstancedSprite::~InstancedSprite() { diff --git a/src/Engine/types/scene/Scene.cpp b/src/Engine/types/scene/Scene.cpp index 451a915..c98576e 100644 --- a/src/Engine/types/scene/Scene.cpp +++ b/src/Engine/types/scene/Scene.cpp @@ -167,8 +167,8 @@ InstancedTexture* Scene::GetInstancedAlphaMask(const InstancedSprite* user) { if (itx->InUseBy(user)) return itx; - if (!user->GetAlphaMaskFilesystemPath().empty() && !instanced_alpha_masks.empty()) { - auto *t = new Texture(user->GetTextureFilesystemPath()); + if (!user->GetAlphaMaskFilesystemPath().empty()) { + auto *t = new Texture(user->GetAlphaMaskFilesystemPath()); auto *itx = new InstancedTexture(t, user); instanced_alpha_masks.push_back(itx); return itx;