This commit is contained in:
Antoine Pilote
2023-09-16 12:11:14 -04:00
21 changed files with 43 additions and 21 deletions

3
.gitmodules vendored
View File

@@ -19,3 +19,6 @@
[submodule "Nuake/dependencies/soloud"]
path = Nuake/dependencies/soloud
url = https://github.com/antopilo/soloud.git
[submodule "Nuake/dependencies/optick"]
path = Nuake/dependencies/optick
url = https://github.com/bombomby/optick.git

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -12,10 +12,10 @@ void FontManager::LoadFonts()
ImFontConfig icons_config; icons_config.MergeMode = true; icons_config.PixelSnapH = true;
mFonts[Normal] = io.Fonts->AddFontFromFileTTF("resources/Fonts/fa-solid-900.ttf", 11.0f, &icons_config, icons_ranges);
mFonts[Bold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Bold.ttf", 16.0);
mFonts[LargeBold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Regular.ttf", 32);
mFonts[Title] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Bold.ttf", 50.0);
mFonts[SubTitle] = io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Regular.ttf", 24.0);
mFonts[Bold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Bold.ttf", 16.0);
mFonts[LargeBold] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Regular.ttf", 32);
mFonts[Title] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Bold.ttf", 50.0);
mFonts[SubTitle] = io.Fonts->AddFontFromFileTTF("resources/Fonts/FiraMono-Regular.ttf", 24.0);
ImGui::GetIO().Fonts->AddFontDefault();
icons_config.MergeMode = true;
mFonts[BigIcon] = io.Fonts->AddFontFromFileTTF("resources/Fonts/fa-solid-900.ttf", 42.0f, &icons_config, icons_ranges);

View File

@@ -430,8 +430,14 @@ void EditorSelectionPanel::DrawProjectPanel(Ref<Nuake::Project> project)
if (ImGui::Button("Locate"))
{
const std::string& locationPath = Nuake::FileDialog::OpenFile("TrenchBroom (.exe)\0TrenchBroom.exe\0");
if (!locationPath.empty())
{
project->TrenchbroomPath = locationPath;
}
}
ImGui::SameLine();
ImGui::InputText("Trenchbroom Path", &project->TrenchbroomPath);
}

View File

@@ -62,7 +62,6 @@ namespace Nuake
void FileSystemUI::DrawDirectory(Ref<Directory> directory, uint32_t drawId)
{
ImGui::PushFont(FontManager::GetFont(Icons));
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 4.0f);
const char* icon = ICON_FA_FOLDER;
const std::string id = ICON_FA_FOLDER + std::string("##") + directory->name;
if (ImGui::Button(id.c_str(), ImVec2(100, 100)))
@@ -213,6 +212,10 @@ namespace Nuake
{
Editor->Selection = EditorSelection(file);
}
if (ImGui::IsItemHovered() && ImGui::IsMouseDoubleClicked(0))
{
OS::OpenTrenchbroomMap(file->GetAbsolutePath());
}
}
ImGui::PopStyleVar();
if (ImGui::BeginDragDropSource())
@@ -734,7 +737,6 @@ namespace Nuake
ImGui::EndTable();
}
}
ImGui::EndChild();
}

View File

@@ -8,7 +8,6 @@ namespace Nuake {
{
if (ImGui::Begin("Project settings"))
{
char buffer[256];
memset(buffer, 0, sizeof(buffer));
std::strncpy(buffer, Engine::GetProject()->Name.c_str(), sizeof(buffer));

View File

@@ -1,5 +1,6 @@
#include "OS.h"
#include "src/Window.h"
#include "Engine.h"
#define GLFW_EXPOSE_NATIVE_WIN32
#include "GLFW/glfw3.h"
@@ -69,6 +70,11 @@ void OS::ShowInFileExplorer(const std::string& filePath)
ShellExecuteA(nullptr, "open", "explorer.exe", ("/select," + std::string(filePath)).c_str(), nullptr, SW_SHOWDEFAULT);
}
void OS::OpenTrenchbroomMap(const std::string& filePath)
{
ShellExecuteA(nullptr, nullptr, Engine::GetProject()->TrenchbroomPath.c_str(), filePath.c_str(), nullptr, SW_SHOW);
}
void OS::OpenURL(const std::string& url)
{
ShellExecute(nullptr, nullptr, std::wstring(url.begin(), url.end()).c_str(), 0, 0, SW_SHOW);

View File

@@ -12,9 +12,10 @@ namespace Nuake
static std::string GetFromClipboard();
static int GetTime();
static void OpenIn(const std::string& filePath);
static int OS::RenameFile(const Ref<File>& file, const std::string& newName);
static int OS::RenameDirectory(const Ref<Directory>& dir, const std::string& newName);
static int RenameFile(const Ref<File>& file, const std::string& newName);
static int RenameDirectory(const Ref<Directory>& dir, const std::string& newName);
static void ShowInFileExplorer(const std::string& filePath);
static void OpenTrenchbroomMap(const std::string& filePath);
static void OpenURL(const std::string& url);
};
}

View File

@@ -279,6 +279,7 @@ namespace Nuake
gBufferShader->SetUniformMat4f("u_View", mView);
// Models
glDisable(GL_CULL_FACE);
auto view = scene.m_Registry.view<TransformComponent, ModelComponent, VisibilityComponent>();
for (auto e : view)
{
@@ -292,10 +293,10 @@ namespace Nuake
}
}
}
glCullFace(GL_FRONT);
Renderer::Flush(gBufferShader, false);
// Quake BSPs
auto quakeView = scene.m_Registry.view<TransformComponent, BSPBrushComponent, VisibilityComponent>();
for (auto e : quakeView)
@@ -310,6 +311,7 @@ namespace Nuake
Renderer::SubmitMesh(b, transform.GetGlobalTransform(), (uint32_t)e);
}
}
Renderer::Flush(gBufferShader, false);
RenderCommand::Disable(RendererEnum::FACE_CULL);

View File

@@ -19,9 +19,10 @@ namespace Nuake
{
std::vector<Vertex> quadVertices =
{
{ Vector3(-1.0f, -1.0f, 0.0f), Vector2(0, 0), Vector3(0, 0, -1) },
{ Vector3(1.0f, 1.0f, 0.0f), Vector2(1.0f, 1.0f), Vector3(0, 0, -1) },
{ Vector3(-1.0f, 1.0f, 0.0f), Vector2(0.0f, 1.0f), Vector3(0, 0, -1) },
{ Vector3(1.0f, 1.0f, 0.0f), Vector2(1.0f, 1.0f), Vector3(0, 0, -1) },
{ Vector3(-1.0f, -1.0f, 0.0f), Vector2(0, 0), Vector3(0, 0, -1) },
{ Vector3(1.0f, -1.0f, 0.0f), Vector2(1.0f, 0.0f), Vector3(0, 0, -1) },
{ Vector3(-1.0f, -1.0f, 0.0f), Vector2(0.0f, 0.0f), Vector3(0, 0, -1) },
{ Vector3(1.0f, 1.0f, 0.0f), Vector2(1.0f, 1.0f), Vector3(0, 0, -1) }

View File

@@ -52,6 +52,7 @@ namespace Nuake {
{
BEGIN_SERIALIZE();
SERIALIZE_VAL(CurrentSkyType);
SERIALIZE_VEC4(AmbientColor);
SERIALIZE_VAL(VolumetricFog);
SERIALIZE_VAL(VolumetricStepCount);
SERIALIZE_VEC4(AmbientColor);
@@ -63,6 +64,8 @@ namespace Nuake {
{
if (j.contains("CurrentSkyType"))
CurrentSkyType = j["CurrentSkyType"];
if (j.contains("AmbientColor"))
DESERIALIZE_VEC4(j["AmbientColor"], AmbientColor);
if (j.contains("VolumetricFog"))
VolumetricFog = j["VolumetricFog"];
if (j.contains("VolumetricStepCount"))

View File

@@ -101,8 +101,7 @@ namespace Nuake
}
Logger::Log("Entity not found with id: " + std::to_string(id), "scene", CRITICAL);
assert("Entity not found");
return Entity{ (entt::entity)0, this };
}
bool Scene::OnInit()
@@ -388,7 +387,6 @@ namespace Nuake
sceneCopy->Path = Path;
json serializedScene = Serialize();
sceneCopy->Deserialize(serializedScene);
return sceneCopy;
}
@@ -485,7 +483,7 @@ namespace Nuake
Entity skeletonRootEntity = CreateEntity(skeletonRoot.Name);
skeletonRootEntity.AddComponent<BoneComponent>().Name = skeletonRoot.Name;
skeletonRoot.EntityHandle = skeletonRootEntity.GetHandle();
skeletonRoot.EntityHandle = skeletonRootEntity.GetID();
entity.AddChild(skeletonRootEntity);
Vector3 bonePosition;
@@ -510,7 +508,7 @@ namespace Nuake
boneEntity.AddComponent<BoneComponent>();
entity.AddChild(boneEntity);
c.EntityHandle = boneEntity.GetHandle();
c.EntityHandle = boneEntity.GetID();
Vector3 bonePosition;
Quat boneRotation;

View File

@@ -50,9 +50,9 @@ namespace Nuake
auto& animationTrack = animation->GetTrack(boneName);
Entity& boneEntity = m_Scene->GetEntity(boneName);
Entity& boneEnt = Entity{ (entt::entity)bone.EntityHandle, m_Scene };
Entity& boneEnt = m_Scene->GetEntityByID(bone.EntityHandle);
///assert(boneEnt.GetHandle() == boneEntity.GetHandle());
if (boneEnt.GetHandle() != 0)
if (boneEnt.IsValid())
{
auto& transformComponent = boneEnt.GetComponent<TransformComponent>();
bone.FinalTransform = transformComponent.GetGlobalTransform() * bone.Offset;

View File

@@ -260,7 +260,7 @@ namespace Nuake
{
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
io.Fonts->AddFontFromFileTTF("resources/Fonts/OpenSans-Regular.ttf", 16.0);
io.Fonts->AddFontFromFileTTF("resources/Fonts/Poppins-Regular.ttf", 16.0);
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
ImGui::StyleColorsDark();