diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp index 2a2b66d4..47a96583 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp @@ -27,6 +27,7 @@ of DigiPen Institute of Technology is prohibited. #include "Math/Transform/SHTransformComponent.h" #include "Graphics/MiddleEnd/GlobalData/SHGraphicsGlobalData.h" #include "Graphics/Descriptors/SHVkDescriptorPool.h" +#include "Scene/SHSceneManager.h" namespace SHADE { @@ -302,7 +303,22 @@ namespace SHADE auto transform = SHComponentManager::GetComponent(rendId); if (transform) { - transformData.emplace_back(transform->GetTRS()); + if (SHSceneManager::CheckNodeAndComponentsActive(rendId)) + { + transformData.emplace_back(transform->GetTRS()); + } + else + { + // Should be deactivated + static const SHMatrix ZERO_MTX = + { + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f + }; + transformData.emplace_back(ZERO_MTX); + } } else { @@ -424,15 +440,30 @@ namespace SHADE for (auto rendId : subBatch.Renderables) { // Transform - auto transform = SHComponentManager::GetComponent_s(rendId); - if (!transform) + auto transform = SHComponentManager::GetComponent_s(rendId); + if (transform) { - SHLOG_WARNING("[SHBatch] Entity contianing a SHRenderable with no SHTransformComponent found!"); - transformData.emplace_back(); + if (SHSceneManager::CheckNodeAndComponentsActive(rendId)) + { + transformData.emplace_back(transform->GetTRS()); + } + else + { + // Should be deactivated + static const SHMatrix ZERO_MTX = + { + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f + }; + transformData.emplace_back(ZERO_MTX); + } } else { - transformData.emplace_back(transform->GetTRS()); + SHLOG_WARNING("[SHBatch] Entity contianing a SHRenderable with no SHTransformComponent found!"); + transformData.emplace_back(); } const SHRenderable* renderable = SHComponentManager::GetComponent(rendId);