mirror of
https://github.com/antopilo/Nuake.git
synced 2026-09-15 20:08:54 +03:00
Added runtime
This commit is contained in:
75
Editor/Runtime.cpp
Normal file
75
Editor/Runtime.cpp
Normal 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();
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
namespace Nuake
|
||||
{
|
||||
|
||||
class ShaderManager {
|
||||
class ShaderManager
|
||||
{
|
||||
private:
|
||||
static std::map<std::string, Scope<Shader>> m_Shaders;
|
||||
|
||||
|
||||
71
premake5.lua
71
premake5.lua
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user