diff --git a/Editor/src/Windows/EditorInterface.cpp b/Editor/src/Windows/EditorInterface.cpp index 0b3ae306..37edf0c6 100644 --- a/Editor/src/Windows/EditorInterface.cpp +++ b/Editor/src/Windows/EditorInterface.cpp @@ -241,9 +241,13 @@ namespace Nuake { gbuffer.Bind(); - if (const int result = gbuffer.ReadPixel(3, pixelPos); result >= 0) + if (const int result = gbuffer.ReadPixel(3, pixelPos); result > 0) { - Selection = EditorSelection(Entity{ (entt::entity)result, Engine::GetCurrentScene().get() }); + Selection = EditorSelection(Entity{ (entt::entity)(result - 1), Engine::GetCurrentScene().get()}); + } + else + { + Selection = EditorSelection(); // None } gbuffer.Unbind(); diff --git a/Nuake/src/Rendering/RenderList.h b/Nuake/src/Rendering/RenderList.h index 4694a589..e2f7e7e3 100644 --- a/Nuake/src/Rendering/RenderList.h +++ b/Nuake/src/Rendering/RenderList.h @@ -12,7 +12,7 @@ namespace Nuake { Ref Mesh; Matrix4 transform; - uint32_t entityId; + int32_t entityId; }; class RenderList @@ -23,7 +23,7 @@ namespace Nuake this->m_RenderList = std::map, std::vector>(); } - void AddToRenderList(Ref mesh, Matrix4 transform, const uint32_t entityId = -1) + void AddToRenderList(Ref mesh, Matrix4 transform, const int32_t entityId = -1) { Ref material = mesh->GetMaterial(); @@ -44,7 +44,7 @@ namespace Nuake for (auto& m : i.second) { shader->SetUniformMat4f("u_Model", m.transform); - shader->SetUniform1i("u_EntityID", m.entityId); + shader->SetUniform1i("u_EntityID", m.entityId + 1); m.Mesh->Draw(shader, false); } } diff --git a/Nuake/src/Rendering/Renderer.cpp b/Nuake/src/Rendering/Renderer.cpp index bed53287..bcd2d449 100644 --- a/Nuake/src/Rendering/Renderer.cpp +++ b/Nuake/src/Rendering/Renderer.cpp @@ -108,7 +108,7 @@ namespace Nuake { } - void Renderer::SubmitMesh(Ref mesh, Matrix4 transform, const uint32_t entityId) + void Renderer::SubmitMesh(Ref mesh, Matrix4 transform, const int32_t entityId) { m_RenderList.AddToRenderList(mesh, transform, entityId); } diff --git a/Nuake/src/Rendering/Renderer.h b/Nuake/src/Rendering/Renderer.h index dae75fe9..0b5de6ae 100644 --- a/Nuake/src/Rendering/Renderer.h +++ b/Nuake/src/Rendering/Renderer.h @@ -60,7 +60,7 @@ namespace Nuake static void LoadShaders(); static void BeginScene(); - static void SubmitMesh(Ref mesh, Matrix4 transform, const uint32_t entityId = -1); + static void SubmitMesh(Ref mesh, Matrix4 transform, const int32_t entityId = -1); static void SubmitCube(Matrix4 transform); static void Flush(Shader* shader, bool depthOnly = false);