#include #include "src/Core/Maths.h" #include #include #include #include #include #include #include #include "src/Scene/Components/BoxCollider.h" #include "src/EditorInterface.h" #include "src/Core/Input.h" #include #include #include #include #include #include int main() { Nuake::Engine::Init(); Nuake::EditorInterface editor; editor.BuildFonts(); // Register Gizmo textures Ref lightTexture = Nuake::TextureManager::Get()->GetTexture("resources/Icons/Gizmo/Light.png"); Ref camTexture = Nuake::TextureManager::Get()->GetTexture("resources/Icons/Gizmo/Camera.png"); Ref GuizmoShader = Nuake::ShaderManager::GetShader("resources/Shaders/gizmo.shader"); while (!Nuake::Engine::GetCurrentWindow()->ShouldClose()) { Nuake::Engine::Tick(); Nuake::Engine::Draw(); if (Nuake::Input::IsKeyPressed(GLFW_KEY_F8)) Nuake::Engine::ExitPlayMode(); Ref sceneFramebuffer = Nuake::Engine::GetCurrentWindow()->GetFrameBuffer(); sceneFramebuffer->Bind(); Ref currentScene = Nuake::Engine::GetCurrentScene(); if (currentScene && !Nuake::Engine::IsPlayMode) { GuizmoShader->Bind(); glDisable(GL_CULL_FACE); glDisable(GL_DEPTH_TEST); auto camView = currentScene->m_Registry.view(); for (auto e : camView) { auto [transformComponent, cam] = camView.get(e); GuizmoShader->SetUniformMat4f("model", transformComponent.GetTransform()); GuizmoShader->SetUniformMat4f("view", currentScene->m_EditorCamera->GetTransform()); GuizmoShader->SetUniformMat4f("projection", currentScene->m_EditorCamera->GetPerspective()); camTexture->Bind(2); GuizmoShader->SetUniform1i("gizmo_texture", 2); Nuake::Renderer::DrawQuad(transformComponent.GetTransform()); } auto view = currentScene->m_Registry.view(); for (auto e : view) { auto [transformComponent, light] = view.get(e); GuizmoShader->SetUniformMat4f("model", transformComponent.GetTransform()); GuizmoShader->SetUniformMat4f("view", currentScene->m_EditorCamera->GetTransform()); GuizmoShader->SetUniformMat4f("projection", currentScene->m_EditorCamera->GetPerspective()); lightTexture->Bind(2); GuizmoShader->SetUniform1i("gizmo_texture", 2); Nuake::Renderer::DrawQuad(transformComponent.GetTransform()); } glEnable(GL_CULL_FACE); glEnable(GL_DEPTH_TEST); GuizmoShader->Unbind(); } sceneFramebuffer->Unbind(); editor.Draw(); Nuake::Engine::EndDraw(); } Nuake::Engine::Close(); }