Editor console basics and more dependencies
Added basics of an editor console, Added YAML-CPP as a dependency of the editor , Added NativeFileDialog as a dependency
This commit is contained in:
parent
b44c88d05c
commit
41d5b87c7b
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -30,3 +30,9 @@
|
|||||||
[submodule "libs/guizmo"]
|
[submodule "libs/guizmo"]
|
||||||
path = libs/guizmo
|
path = libs/guizmo
|
||||||
url = https://github.com/CedricGuillemet/ImGuizmo.git
|
url = https://github.com/CedricGuillemet/ImGuizmo.git
|
||||||
|
[submodule "libs/yaml-cpp"]
|
||||||
|
path = libs/yaml-cpp
|
||||||
|
url = https://git.barink.dev/Nigel/yaml-cpp.git
|
||||||
|
[submodule "libs/nativefiledialog"]
|
||||||
|
path = libs/nativefiledialog
|
||||||
|
url = https://git.barink.dev/Nigel/nativefiledialog.git
|
||||||
|
@ -5,7 +5,8 @@ buildmessage "Building editor ..."
|
|||||||
|
|
||||||
links{
|
links{
|
||||||
"YoggieEngine",
|
"YoggieEngine",
|
||||||
"ImGuizmo"
|
"ImGuizmo",
|
||||||
|
"yaml-cpp"
|
||||||
}
|
}
|
||||||
|
|
||||||
includedirs{
|
includedirs{
|
||||||
@ -23,6 +24,7 @@ includedirs{
|
|||||||
incfolder["imgui"],
|
incfolder["imgui"],
|
||||||
incfolder["imguizmo"],
|
incfolder["imguizmo"],
|
||||||
incfolder["entt"],
|
incfolder["entt"],
|
||||||
|
incfolder["yamlcpp"],
|
||||||
|
|
||||||
"./include"
|
"./include"
|
||||||
|
|
||||||
@ -37,3 +39,4 @@ files {
|
|||||||
"./src/*.cpp"
|
"./src/*.cpp"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
include("../yaml-cpp")
|
||||||
|
35
Editor/src/EditorConsole.cpp
Normal file
35
Editor/src/EditorConsole.cpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include "EditorConsole.h"
|
||||||
|
|
||||||
|
|
||||||
|
EditorConsole::EditorConsole()
|
||||||
|
: Items(ImVector<char*>()), AutoScroll(false), ScrollToBottom(false)
|
||||||
|
{
|
||||||
|
AddLog("Hello Editor console!");
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorConsole::~EditorConsole() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditorConsole::Draw() {
|
||||||
|
ImGui::SetNextWindowSize(ImVec2(520, 600), ImGuiCond_FirstUseEver);
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < Items.Size; i++)
|
||||||
|
{
|
||||||
|
const char* item = Items[i];
|
||||||
|
ImGui::TextUnformatted(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EditorConsole::AddLog(const char* fmt, ...) {
|
||||||
|
char buf[1024];
|
||||||
|
va_list args;
|
||||||
|
va_start(args, fmt);
|
||||||
|
vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args);
|
||||||
|
buf[IM_ARRAYSIZE(buf) - 1] = 0;
|
||||||
|
va_end(args);
|
||||||
|
Items.push_back(strdup(buf));
|
||||||
|
}
|
18
Editor/src/EditorConsole.h
Normal file
18
Editor/src/EditorConsole.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <imgui.h>
|
||||||
|
|
||||||
|
class EditorConsole
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EditorConsole();
|
||||||
|
~EditorConsole();
|
||||||
|
|
||||||
|
void Draw();
|
||||||
|
void AddLog(const char* fmt, ...);
|
||||||
|
|
||||||
|
private:
|
||||||
|
ImVector<char*> Items;
|
||||||
|
bool AutoScroll;
|
||||||
|
bool ScrollToBottom;
|
||||||
|
|
||||||
|
};
|
21
Editor/src/Project.cpp
Normal file
21
Editor/src/Project.cpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#include "Project.h"
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <yaml-cpp/yaml.h>
|
||||||
|
|
||||||
|
|
||||||
|
void Project::CreateProject(std::filesystem::path path) {
|
||||||
|
YAML::Emitter projectYAML;
|
||||||
|
projectYAML << YAML::Key << "Project" << YAML::Value << "new";
|
||||||
|
std::ofstream projectFile;
|
||||||
|
|
||||||
|
path.append(ProjectName.append(".yproj"));
|
||||||
|
|
||||||
|
std::cout << path.u8string() << std::endl;
|
||||||
|
|
||||||
|
projectFile.open(path.u8string());
|
||||||
|
projectFile << projectYAML.c_str();
|
||||||
|
projectFile.close();
|
||||||
|
}
|
10
Editor/src/Project.h
Normal file
10
Editor/src/Project.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <filesystem>
|
||||||
|
class Project {
|
||||||
|
public:
|
||||||
|
Project(const std::string& name): ProjectName(name){}
|
||||||
|
void CreateProject(std::filesystem::path path );
|
||||||
|
private:
|
||||||
|
std::string ProjectName;
|
||||||
|
|
||||||
|
};
|
@ -1,6 +1,7 @@
|
|||||||
#include <glm/gtc/type_ptr.hpp>
|
#include <glm/gtc/type_ptr.hpp>
|
||||||
#include <glm/gtc/matrix_transform.hpp>
|
#include <glm/gtc/matrix_transform.hpp>
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
|
#include "Project.h"
|
||||||
|
|
||||||
#include "../../libs/guizmo/ImGuizmo.h"
|
#include "../../libs/guizmo/ImGuizmo.h"
|
||||||
|
|
||||||
@ -72,11 +73,29 @@ void ImmediateGraphicsDraw()
|
|||||||
|
|
||||||
if (ImGui::BeginMenu("Application")) {
|
if (ImGui::BeginMenu("Application")) {
|
||||||
|
|
||||||
if (ImGui::MenuItem("Preferences")) {
|
if (ImGui::BeginMenu("Project")) {
|
||||||
|
if (ImGui::MenuItem("New project"))
|
||||||
|
{
|
||||||
|
Project p("New-Project");
|
||||||
|
p.CreateProject("I:/Dev/MyGameEngine");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::MenuItem("Load Project"))
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::MenuItem("Exit")) {
|
ImGui::EndMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (ImGui::MenuItem("Preferences"))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::MenuItem("Exit"))
|
||||||
|
{
|
||||||
// TODO: Exit application
|
// TODO: Exit application
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,12 +104,18 @@ void ImmediateGraphicsDraw()
|
|||||||
|
|
||||||
if (ImGui::BeginMenu("Scene")) {
|
if (ImGui::BeginMenu("Scene")) {
|
||||||
|
|
||||||
|
if (ImGui::MenuItem("Save scene")) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::MenuItem("Load scene")) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (ImGui::MenuItem("Add Entity")) {
|
if (ImGui::MenuItem("Add Entity")) {
|
||||||
Level1.AddEntity("New entity");
|
Level1.AddEntity("New entity");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#include "widgets.h"
|
#include "widgets.h"
|
||||||
//#include "EditorConsole.h"
|
#include "EditorConsole.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "../../YoggieEngine/src/Scene/Components.h"
|
#include "../../YoggieEngine/src/Scene/Components.h"
|
||||||
#include "../../YoggieEngine/src/Scene/Entity.h"
|
#include "../../YoggieEngine/src/Scene/Entity.h"
|
||||||
@ -151,11 +151,11 @@ void Settings() {
|
|||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
|
|
||||||
//auto console = EditorConsole();
|
auto console = EditorConsole();
|
||||||
|
|
||||||
void Console() {
|
void Console() {
|
||||||
ImGui::Begin("Console", false);
|
ImGui::Begin("Console", false);
|
||||||
// console.Draw();
|
console.Draw();
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,8 @@
|
|||||||
|
|
||||||
- Scripting support ( idk what language)
|
- Scripting support ( idk what language)
|
||||||
- LUA
|
- LUA
|
||||||
|
|
||||||
- Configuration options
|
- Configuration options
|
||||||
- JSON
|
- JSON
|
||||||
- LUA
|
- LUA
|
||||||
- others ?!?!?
|
- YAML
|
||||||
|
@ -5,6 +5,7 @@ incfolder["spdlog"] = "%{wks.location}/libs/spdlog/include"
|
|||||||
incfolder["assimp"] = "%{wks.location}/libs/assimp/include"
|
incfolder["assimp"] = "%{wks.location}/libs/assimp/include"
|
||||||
incfolder["glm"] = "%{wks.location}/libs/glm"
|
incfolder["glm"] = "%{wks.location}/libs/glm"
|
||||||
incfolder["entt"] = "%{wks.location}/libs/entt/src"
|
incfolder["entt"] = "%{wks.location}/libs/entt/src"
|
||||||
|
incfolder["yamlcpp"] = "%{wks.location}/libs/yaml-cpp/include"
|
||||||
|
|
||||||
-- Graphics
|
-- Graphics
|
||||||
incfolder["glad"] = "%{wks.location}/libs/glad/include"
|
incfolder["glad"] = "%{wks.location}/libs/glad/include"
|
||||||
|
1
libs/nativefiledialog
Submodule
1
libs/nativefiledialog
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 67345b80ebb429ecc2aeda94c478b3bcc5f7888e
|
1
libs/yaml-cpp
Submodule
1
libs/yaml-cpp
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 0579ae3d976091d7d664aa9d2527e0d0cff25763
|
13
yaml-cpp/premake5.lua
Normal file
13
yaml-cpp/premake5.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
project "yaml-cpp"
|
||||||
|
kind "StaticLib"
|
||||||
|
|
||||||
|
buildmessage "Building YAML parser ..."
|
||||||
|
|
||||||
|
includedirs{
|
||||||
|
"../libs/yaml-cpp/include"
|
||||||
|
}
|
||||||
|
|
||||||
|
files{
|
||||||
|
"../libs/yaml-cpp/src/*.h",
|
||||||
|
"../libs/yaml-cpp/src/*.cpp"
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user