Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions examples/examples2D/marching_squares.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "NewtonRenderer.h"
#include "Vivid.h"

#include <cstdio>
#include <cmath>
Expand Down Expand Up @@ -110,7 +110,7 @@ int main(void)
val4.push_back(temp4);
}

float time = 0;
double time = 0;
while (app->IsRunning())
{
Vivid::Renderer2D::BeginScene();
Expand All @@ -132,7 +132,7 @@ int main(void)
Vec2 x3 = Vec2(x + dim, y + dim);
Vec2 x4 = Vec2(x, y + dim);

Vivid::Renderer2D::DrawQuad(x1.x, x1.y, dim, dim, Vec3(v1, v1, v1));
// Vivid::Renderer2D::DrawQuad(x1.x, x1.y, dim, dim, Vec3(v1, v1, v1));

Vec2 a = x1 + (x2 - x1) * (v1 / (v1 + v2));
Vec2 b = x2 + (x3 - x2) * (v2 / (v2 + v3));
Expand Down Expand Up @@ -189,7 +189,7 @@ int main(void)
break;
}
}
time += 0.00025;
time += 0.000005;
}

Vivid::Renderer2D::EndScene();
Expand Down
39 changes: 20 additions & 19 deletions examples/examples2D/renderer_2D_example.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "NewtonRenderer.h"
#include "Vivid.h"

int main(void)
{
Expand All @@ -11,24 +11,25 @@ int main(void)
Vivid::Renderer2D::Init();
const GLubyte* vendor = glGetString(GL_VENDOR); // Returns the vendor
const GLubyte* renderer = glGetString(GL_RENDERER); // Returns a hint to the model
while (app->IsRunning())
{
// Begin Scene
// Todo: Fix order. Currently quads will always be drawn first
Vivid::Renderer2D::BeginScene();

// Draw using API
Vivid::Renderer2D::DrawCircle(Vec2(0, 0), 150, Vec3(0.0f, 1.0f, 0.0f));

Vivid::Renderer2D::DrawLine(Vec2(-150, 0), Vec2(150, 0), 2,
Vec3(1.0f, 0.5f, 0.0f));

Vivid::Renderer2D::DrawQuad(-200, -200, 100, 100, Vec3(1.0f, 1.0f, 0.0f));

Vivid::Renderer2D::EndScene();
// Update App
app->GetWindow().Update();
}
// while (app->IsRunning())
// {
// // Begin Scene
// // Todo: Fix order. Currently quads will always be drawn first
// Vivid::Renderer2D::BeginScene();
//
// // Draw using API
// Vivid::Renderer2D::DrawCircle(Vec2(0, 0), 150, Vec3(0.0f, 1.0f, 0.0f));
//
// Vivid::Renderer2D::DrawLine(Vec2(-150, 0), Vec2(150, 0), 2,
// Vec3(1.0f, 0.5f, 0.0f));
//
// Vivid::Renderer2D::DrawQuad(-200, -200, 100, 100, Vec3(1.0f, 1.0f, 0.0f));
//
// Vivid::Renderer2D::EndScene();
// // Update App
// app->GetWindow().Update();
// }
app->Run();

app->Terminate();
return 0;
Expand Down
2 changes: 1 addition & 1 deletion examples/examples3D/suzanne_example.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "NewtonRenderer.h"
#include "Vivid.h"

int main(void)
{
Expand Down
4 changes: 3 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ set(SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/renderer/shapes/Sphere.cpp
${CMAKE_CURRENT_SOURCE_DIR}/utils/Error.cpp
${CMAKE_CURRENT_SOURCE_DIR}/utils/Timer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/ui/UI.cpp
${CMAKE_CURRENT_SOURCE_DIR}/renderer/Renderer2D.cpp
)

Expand Down Expand Up @@ -48,7 +49,8 @@ set(HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/utils/Error.h
${CMAKE_CURRENT_SOURCE_DIR}/utils/Timer.h
${CMAKE_CURRENT_SOURCE_DIR}/renderer/Renderer2D.h
${CMAKE_CURRENT_SOURCE_DIR}/NewtonRenderer.h
${CMAKE_CURRENT_SOURCE_DIR}/ui/UI.h
${CMAKE_CURRENT_SOURCE_DIR}/Vivid.h
)

add_library(Vivid SHARED ${SOURCES} ${HEADERS})
Expand Down
11 changes: 11 additions & 0 deletions src/Editor/Application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Application::Application(int width, int height, const char* title)
if (title == nullptr)
m_Title = "Newton";
m_Window = Window::Init(m_Width, m_Height, m_Title);
m_UI = new UI();
m_UI->Init();
}

bool Application::IsRunning()
Expand All @@ -25,3 +27,12 @@ void Application::Terminate()
{
glfwTerminate();
}

void Application::Run()
{
while (IsRunning())
{
m_Window->Update();
m_UI->Update();
}
}
5 changes: 5 additions & 0 deletions src/Editor/Application.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#pragma once

#include "common/Types.h"
#include "Window.h"
#include "ui/UI.h"
#include <iostream>

class Application
Expand All @@ -15,6 +17,9 @@ class Application
Application* getInstanceImpl(int width, int height, char* title);
Ptr<Window> m_Window;

// Todo: make this unique pointer
UI* m_UI;

public:
void Run();
bool IsRunning();
Expand Down
31 changes: 5 additions & 26 deletions src/Editor/Window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@
#include "confs/Config.h"
#include "inputs/InputHandler.h"

#include "imgui/imgui/backends/imgui_impl_glfw.h"
#include "imgui/imgui/backends/imgui_impl_opengl3.h"
#include "imgui/imgui/imgui.h"
#include "renderer/Renderer.h"
#include "ui/UI.h"

InputHandler* InputHandler::s_Instance;
Vivid::Camera* Vivid::Camera::s_Instance;
Expand Down Expand Up @@ -39,15 +37,9 @@ Window::Window(int width, int height, const char* title)
return;
}

glfwMakeContextCurrent(m_Window);

IMGUI_CONFS
// UI::Init(m_UIUpadateCallback);

IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGui_ImplGlfw_InitForOpenGL(m_Window, true);
ImGui_ImplOpenGL3_Init(glsl_version);
ImGui::StyleColorsDark();
glfwMakeContextCurrent(m_Window);
}

Ptr<Window> Window::Init(int width, int height, const char* title)
Expand Down Expand Up @@ -98,21 +90,8 @@ void Window::Update()
m_PrevMousePosition->y = mousePosition.y;
}

// IMGUI
ImGui_ImplGlfw_NewFrame();
ImGui_ImplOpenGL3_NewFrame();
ImGui::NewFrame();

ImGui::Begin("Debug");
// ImGui::SliderFloat3("Translation Model 1", &translationModel1.x, -500.0f, 500.0f);
// // ImGui::SliderFloat3("Translation Model 2", &translationModel2.x, -300.0f, 300.0f);
// ImGui::SliderFloat3("Light Position", &lightPos.x, -500.0f, 500.0f);
ImGui::Text("Application average %.3f ms/frame (%.1f FPS)",
1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);

ImGui::End();
ImGui::Render();
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
// UI
// OnUIUpdate();

glfwMakeContextCurrent(m_Window);
glfwSwapBuffers(m_Window);
Expand Down
1 change: 1 addition & 0 deletions src/Editor/Window.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class Window

~Window() = default;
static Ptr<Window> Init(int width, int height, const char* title);

void Clear() const;
void Update();

Expand Down
4 changes: 4 additions & 0 deletions src/NewtonRenderer.h → src/Vivid.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,8 @@
#include "glm/gtc/matrix_transform.hpp"
#include "glm/glm/glm.hpp"

#include "imgui/imgui/backends/imgui_impl_glfw.h"
#include "imgui/imgui/backends/imgui_impl_opengl3.h"
#include "imgui/imgui/imgui.h"

Application* Application::s_Instance = nullptr;
42 changes: 42 additions & 0 deletions src/ui/UI.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include "UI.h"
#include "imgui/imgui/backends/imgui_impl_glfw.h"
#include "imgui/imgui/backends/imgui_impl_opengl3.h"
#include "imgui/imgui/imgui.h"

#include "confs/Config.h"
#include "Editor/Application.h"

void UI::Update()
{

ImGui_ImplGlfw_NewFrame();
ImGui_ImplOpenGL3_NewFrame();
ImGui::NewFrame();

ImGui::Begin("Debug");
// ImGui::SliderFloat3("Translation Model 1", &translationModel1.x, -500.0f, 500.0f);
// // ImGui::SliderFloat3("Translation Model 2", &translationModel2.x, -300.0f, 300.0f);
// ImGui::SliderFloat3("Light Position", &lightPos.x, -500.0f, 500.0f);
ImGui::Text("Application average %.3f ms/frame (%.1f FPS)",
1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);

// m_OnUpdate();

ImGui::End();
ImGui::Render();
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
}

UI* UI::Init()
{
IMGUI_CONFS

IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGui_ImplGlfw_InitForOpenGL(Application::GetInstance()->GetWindow().GetGLFWWindow(), true);
ImGui_ImplOpenGL3_Init(glsl_version);
ImGui::StyleColorsDark();

// m_OnUpdate = onUpdate;
return this;
}
14 changes: 14 additions & 0 deletions src/ui/UI.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once
#include "common/Types.h"

class UI
{
private:
static void(*m_OnUpdate)();
public:
UI() = default;
UI* Init();
void Update();
//TODO: Implement events
// virtual void OnEvent(Event& event) = 0;
};