#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 #include "src/UI/UserInterface.h" #include "src/NewEditor.h" #include void OpenProject() { // Parse the project and load it. std::string projectPath = Nuake::FileDialog::OpenFile("Project file|*.project;"); Nuake::FileSystem::SetRootDirectory(projectPath + "/../"); Ref project = Nuake::Project::New(); if (!project->Deserialize(Nuake::FileSystem::ReadFile(projectPath, true))) { Nuake::Logger::Log("Error loading project: " + projectPath, Nuake::CRITICAL); return; } project->FullPath = projectPath; Nuake::Engine::LoadProject(project); // Create new interface named test. //userInterface = UI::UserInterface::New("test"); // Set current interface running. //Engine::GetCurrentScene()->AddInterface(userInterface); } 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"); Ref ditherShader = Nuake::ShaderManager::GetShader("resources/Shaders/dither.shader"); //Nuake::NewEditor newEditor = Nuake::NewEditor(); // Register shaders while (!Nuake::Engine::GetCurrentWindow()->ShouldClose()) { Nuake::RenderCommand::Clear(); Nuake::Engine::Tick(); Nuake::Engine::Draw(); //newEditor.Update(0.f); if (Nuake::Input::IsKeyPressed(GLFW_KEY_F8)) Nuake::Engine::ExitPlayMode(); Nuake::Vector2 WindowSize = Nuake::Engine::GetCurrentWindow()->GetSize(); glViewport(0, 0, WindowSize.x, WindowSize.y); Nuake::Renderer2D::BeginDraw(WindowSize); //newEditor.Draw(WindowSize); 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.GetGlobalTransform()); // 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.GetGlobalTransform()); //} // //auto view = currentScene->m_Registry.view(); //for (auto e : view) { // auto [transformComponent, light] = view.get(e); // // GuizmoShader->SetUniformMat4f("model", transformComponent.GetGlobalTransform()); // 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.GetGlobalTransform()); //} // //glEnable(GL_CULL_FACE); // //GuizmoShader->Unbind(); // //ditherShader->Bind(); //ditherShader->SetUniformMat4f("u_View", Nuake::Engine::GetCurrentScene()->m_EditorCamera->GetTransform()); //ditherShader->SetUniformMat4f("u_Projection", Nuake::Engine::GetCurrentScene()->m_EditorCamera->GetPerspective()); //ditherShader->SetUniform1f("u_Time", Nuake::Engine::GetTime()); //ditherShader->SetUniform4f("u_Color", 252.0 / 255.0, 3.0 / 255.0, 65.0 / 255.0, 1.0); // //if (editor.m_IsEntitySelected && editor.m_SelectedEntity.HasComponent()) //{ // for (auto& m : editor.m_SelectedEntity.GetComponent().Meshes) // Nuake::Renderer::SubmitMesh(m, editor.m_SelectedEntity.GetComponent().GetGlobalTransform()); // // Nuake::Renderer::Flush(ditherShader, true); //} glEnable(GL_DEPTH_TEST); } sceneFramebuffer->Unbind(); editor.Draw(); Nuake::Engine::EndDraw(); } Nuake::Engine::Close(); }