Added runtime

This commit is contained in:
Antoine Pilote
2023-07-22 03:22:08 -04:00
parent df69d17305
commit 0d32d28b82
4 changed files with 151 additions and 5 deletions

75
Editor/Runtime.cpp Normal file
View File

@@ -0,0 +1,75 @@
#include <string>
#include <Engine.h>
#include <dependencies/GLEW/include/GL/glew.h>
#include "src/Rendering/Shaders/ShaderManager.h"
#include "src/Rendering/Renderer.h"
#include <dependencies/glfw/include/GLFW/glfw3.h>
#include <src/Vendors/imgui/imgui.h>
#include <src/Vendors/imgui/imgui_impl_opengl3.h>
void main(int argc, char* argv[])
{
for (uint32_t i = 0; i < argc; i++)
{
char* arg = argv[i];
std::string projectPath;
if (argc == 1)
{
return;
}
projectPath = std::string(argv[1]);
using namespace Nuake;
Nuake::Engine::Init();
Engine::GetCurrentWindow()->SetSize({ 1920, 1080 });
Ref<Nuake::Window> window = Nuake::Engine::GetCurrentWindow();
window->SetTitle("Nuake Runtime");
FileSystem::SetRootDirectory(FileSystem::GetParentPath(projectPath));
auto project = Project::New();
auto projectFileData = FileSystem::ReadFile(projectPath, true);
try
{
project->Deserialize(projectFileData);
project->FullPath = projectPath;
Engine::LoadProject(project);
}
catch (std::exception exception)
{
Logger::Log("Error loading project: " + projectPath, "editor", CRITICAL);
Logger::Log(exception.what());
}
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
Engine::EnterPlayMode();
glViewport(0, 0, 100, 100);
while (!window->ShouldClose())
{
Nuake::Engine::Tick();
Nuake::Engine::Draw();
Timestep ts = Nuake::Engine::GetTimestep();
//ImGui::Render();
//ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
Nuake::Vector2 WindowSize = window->GetSize();
glViewport(0, 0, WindowSize.x, WindowSize.y);
glClear(GL_COLOR_BUFFER_BIT);
auto shader = ShaderManager::GetShader("resources/Shaders/copy.shader");
shader->SetUniformTex("u_Source", Engine::GetCurrentScene()->mSceneRenderer->GetTexture().get());
Renderer::DrawQuad(Matrix4());
glfwSwapBuffers(window->GetHandle());
glfwPollEvents();
}
}
Nuake::Engine::Close();
}

View File

@@ -112,9 +112,9 @@ namespace Nuake
Nuake::RenderCommand::Clear();
// Start imgui frame
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplGlfw_NewFrame();
ImGui::NewFrame();
//ImGui_ImplOpenGL3_NewFrame();
//ImGui_ImplGlfw_NewFrame();
//ImGui::NewFrame();
// Draw scene
Window::Get()->Draw();

View File

@@ -7,8 +7,8 @@
namespace Nuake
{
class ShaderManager {
class ShaderManager
{
private:
static std::map<std::string, Scope<Shader>> m_Shaders;

View File

@@ -81,6 +81,77 @@ project "Nuake"
runtime "Release"
optimize "on"
project "NuakeRuntime"
location "Editor"
kind "ConsoleApp"
language "C++"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
debugdir ("Editor")
files
{
"Editor/Runtime.cpp"
}
includedirs
{
"%{prj.name}/../Nuake",
"%{prj.name}/../Nuake/src/Vendors",
"%{prj.name}/../Nuake/Dependencies/GLEW/include",
"%{prj.name}/../Nuake/Dependencies/GLFW/include",
"%{prj.name}/../Nuake/Dependencies/assimp/include",
"%{prj.name}/../Nuake/Dependencies/build",
"%{prj.name}/../Nuake/src/Vendors/msdfgen",
"%{prj.name}/../Nuake/Dependencies/JoltPhysics",
"%{prj.name}/../Nuake/Dependencies/build",
"%{prj.name}/../Nuake/Dependencies/soloud/include"
}
libdirs
{
"%{prj.name}/../Nuake/dependencies/GLEW/lib/Release/x64",
"%{prj.name}/../Nuake/dependencies/assimp/lib/",
"%{prj.name}/../Nuake/dependencies/freetype-windows-binaries/release static/win64",
"%{prj.name}/../bin/%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}/Nuake/",
"%{prj.name}/../Nuake/dependencies/freetype/include",
"%{prj.name}/../Nuake/src/Vendors/msdfgen/freetype/win64",
"%{prj.name}/../Nuake/src/Vendors/msdfgen",
"%{prj.name}/../Nuake/src/Vendors/wren/src/include",
"%{prj.name}/../Nuake/dependencies/JoltPhysics/bin/%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}/JoltPhysics/",
"%{prj.name}/../Nuake/dependencies/soloud/bin/%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
}
links
{
"Nuake",
"GLFW",
"assimp",
"glew32s.lib",
"opengl32.lib",
"Freetype",
"JoltPhysics",
"soloud"
}
filter "system:windows"
cppdialect "C++17"
staticruntime "On"
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "on"
-- copy a file from the objects directory to the target directory
postbuildcommands {
--"{COPY} "Nuake/dependencies/GLFW/lib-vc2019/glfw3.dll" " .. "./bin/" .. outputdir .. "/%{prj.name}/glfw3.dll"
}
project "Editor"
location "Editor"
kind "ConsoleApp"