Huge rework of editor and other changes.

This commit is contained in:
antopilo
2022-01-09 16:44:20 -05:00
parent 55ae840678
commit a71bfcbe75
55 changed files with 734 additions and 398 deletions

View File

@@ -40,6 +40,8 @@ namespace Nuake {
Window::Window()
{
m_Title = DEFAULT_TITLE;
Init();
Renderer::Init();
}
@@ -75,6 +77,17 @@ namespace Nuake {
return m_Scene;
}
void Window::SetTitle(const std::string& title)
{
m_Title = title;
glfwSetWindowTitle(m_Window, m_Title.c_str());
}
std::string Window::GetTitle()
{
return m_Title;
}
Ref<FrameBuffer> Window::GetFrameBuffer() const
{
return m_Framebuffer;
@@ -96,7 +109,7 @@ namespace Nuake {
}
{ // Create window
m_Window = glfwCreateWindow(m_Width, m_Height, "Nuake - Dev build", NULL, NULL);
m_Window = glfwCreateWindow(m_Width, m_Height, m_Title.c_str(), NULL, NULL);
if (!m_Window)
{
Logger::Log("Window creation failed.", CRITICAL);
@@ -123,13 +136,11 @@ namespace Nuake {
// TODO: have clear color in environnement.
glClearColor(0.f, 0.f, 0.f, 1.0f);
glfwSwapInterval(1);
glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
glEnable(GL_DEPTH_TEST);
glEnable(GL_MULTISAMPLE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//glEnable(GL_CULL_FACE);
}
@@ -137,9 +148,7 @@ namespace Nuake {
m_Framebuffer = CreateRef<FrameBuffer>(true, glm::vec2(1920, 1080));
m_Framebuffer->SetTexture(CreateRef<Texture>(glm::vec2(1920, 1080), GL_RGB));
// ImGui init
{
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
@@ -222,7 +231,6 @@ namespace Nuake {
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
ImGui_ImplGlfw_InitForOpenGL(m_Window, true);
ImGui_ImplOpenGL3_Init("#version 330");
}
@@ -230,7 +238,6 @@ namespace Nuake {
return 0;
}
void Window::Update(Timestep ts)
{
// TODO: have event here?
@@ -242,8 +249,6 @@ namespace Nuake {
m_Scene->FixedUpdate(ts);
}
void Window::Draw()
{
// Dont render if no scene is loaded.
@@ -268,120 +273,6 @@ namespace Nuake {
m_Scene->Draw(*m_Framebuffer.get(), m_Scene->m_EditorCamera->GetPerspective(), m_Scene->m_EditorCamera->GetTransform());
}
//m_GBuffer->Bind();
//m_GBuffer->Clear();
//{
// if (Engine::IsPlayMode)
// m_Scene->DrawDeferred();
// else
// m_Scene->EditorDrawDeferred();
//}
//
//m_GBuffer->Unbind();
//
//m_DeferredBuffer->Bind();
//m_DeferredBuffer->Clear();
//{
// glDisable(GL_CULL_FACE);
//
// if (Engine::IsPlayMode)
// m_Scene->DrawDeferredShading();
// else
// m_Scene->EditorDrawDeferredShading();
//
// m_GBuffer->GetTexture(GL_DEPTH_ATTACHMENT)->Bind(5);
// m_GBuffer->GetTexture(GL_COLOR_ATTACHMENT0)->Bind(6);
// m_GBuffer->GetTexture(GL_COLOR_ATTACHMENT1)->Bind(7);
// m_GBuffer->GetTexture(GL_COLOR_ATTACHMENT2)->Bind(8);
//
// glDisable(GL_CULL_FACE);
//
// Shader* deferredShader = ShaderManager::GetShader("resources/Shaders/deferred.shader");
// deferredShader->Bind();
// deferredShader->SetUniform1i("m_Depth", 5);
// deferredShader->SetUniform1i("m_Albedo", 6);
// deferredShader->SetUniform1i("m_Normal", 7);
// deferredShader->SetUniform1i("m_Material", 8);
//
// Renderer::DrawQuad(Matrix4());
//
// auto interfaceView = m_Scene->m_Registry.view<InterfaceComponent>();
// for (auto i : interfaceView)
// {
// InterfaceComponent& uInterface = interfaceView.get<InterfaceComponent>(i);
// if (uInterface.Interface)
// uInterface.Interface->Draw(m_DeferredBuffer->GetSize());
// }
//}
//m_DeferredBuffer->Unbind();
//
//bloom.Threshold = GetScene()->GetEnvironment()->BloomThreshold;
//bloom.BlurAmount = GetScene()->GetEnvironment()->BloomBlurAmount;
//
//bloom.Draw();
// m_BloomFrameBuffer->Bind();
// m_BloomFrameBuffer->Clear();
// m_BloomFrameBuffer->SetTexture(m_BloomTextures[0]);
// {
//
// Ref<Shader> bloomShader = ShaderManager::GetShader("resources/Shaders/bloom.shader");
// bloomShader->Bind();
//
// // Threshold
// bloomShader->SetUniform1i("u_Stage", 0);
// bloomShader->SetUniform1f("u_Threshold", 0.5);
// m_DeferredBuffer->GetTexture()->Bind(1);
// bloomShader->SetUniform1i("u_LightingBuffer", 1);
//
// Renderer::DrawQuad(Matrix4());
// Downsample
//m_BloomTextures.clear();
//const int DownsampleAmount = 4;
//m_BloomTextures.reserve(4);
//m_BloomTextures.push_back(m_BloomFrameBuffer->GetTexture());
//
//Vector2 originalSize = m_BloomFrameBuffer->GetSize();
//Vector2 currentSize = originalSize;
//for (unsigned int i = 1; i < DownsampleAmount; i++) // # of iterations for down sample
//{
// m_BloomFrameBuffer->Clear();
// currentSize /= 2;
// m_BloomTextures.push_back(m_BloomFrameBuffer->GetTexture());
//
// m_BloomFrameBuffer->SetSize(currentSize);
// m_BloomFrameBuffer->SetTexture(CreateRef<Texture>(currentSize, GL_RGB));
//
// m_BloomFrameBuffer->Clear();
// bloomShader->SetUniform1i("u_Stage", 1);
// bloomShader->SetUniform1i("u_DownsamplingSource", m_BloomTextures[i - 1]->GetID());
// Renderer::DrawQuad(Matrix4());
//
// if (ImGui::Begin(("Downsample " + std::to_string(i)).c_str()))
// {
// ImGui::Image((void*)m_BloomTextures[i]->GetID(), ImGui::GetContentRegionAvail(), ImVec2(0, 1), ImVec2(1, 0));
// }
// ImGui::End();
//}
// Upsample
//}
//m_BloomFrameBuffer->Unbind();
//if (ImGui::Begin("Bloom"))
//{
// ImGui::Image((void*)bloom.GetThreshold()->GetID(), ImGui::GetContentRegionAvail(), ImVec2(0, 1), ImVec2(1, 0));
//}
//ImGui::End();
glEnable(GL_DEPTH_TEST);
Renderer::EndDraw();
}