cleanup and instrumentation

This commit is contained in:
Erris
2026-01-25 16:12:32 +01:00
parent c8cfed58da
commit 736591415c
61 changed files with 845 additions and 383 deletions

View File

@@ -1,6 +1,8 @@
#ifndef SANDBOX_HPP
#define SANDBOX_HPP
#include "open_engine/core/time.hpp"
#include <glm/fwd.hpp>
#include <open_engine.hpp>
#include <glm/ext/matrix_transform.hpp>
@@ -27,8 +29,7 @@ class SandboxLayer : public OpenEngine::Layer
-0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
};
OpenEngine::Ref<OpenEngine::VertexBuffer> vertex_buffer;
vertex_buffer.reset(OpenEngine::VertexBuffer::Create(square_vertices, sizeof(square_vertices)));
OpenEngine::Ref<OpenEngine::VertexBuffer> vertex_buffer = OpenEngine::VertexBuffer::Create(square_vertices, sizeof(square_vertices));
OpenEngine::BufferLayout layout = {
{ OpenEngine::ShaderDataType::Float3, "a_Position" },
@@ -39,8 +40,7 @@ class SandboxLayer : public OpenEngine::Layer
square_vertex_array->AddVertexBuffer(vertex_buffer);
uint32_t indices[6] = { 0, 1, 2, 2, 3, 0 };
OpenEngine::Ref<OpenEngine::IndexBuffer> index_buffer;
index_buffer.reset(OpenEngine::IndexBuffer::Create(indices, sizeof(indices) / sizeof(uint32_t)));
OpenEngine::Ref<OpenEngine::IndexBuffer> index_buffer = OpenEngine::IndexBuffer::Create(indices, sizeof(indices) / sizeof(uint32_t));
square_vertex_array->SetIndexBuffer(index_buffer);
@@ -57,8 +57,12 @@ class SandboxLayer : public OpenEngine::Layer
camera((float)OpenEngine::Application::Get().GetWindow().GetWidth() /
OpenEngine::Application::Get().GetWindow().GetHeight(), 1.0f)
{
OE_PROFILE_FUNCTION();
//vertex_array.reset(OpenEngine::VertexArray::Create());
square = CreateSquare();
{
OE_PROFILE_SCOPE("Creating Square");
square = CreateSquare();
}
//float vertices[3 * 7] = {
// -0.5f, -0.5f, 0.0f, 0.8f, 0.2f, 0.8f, 1.0f,
@@ -86,14 +90,24 @@ class SandboxLayer : public OpenEngine::Layer
//texture_shader = OpenEngine::Shader::Create("./assets/shaders/texture.glsl");
auto texture_shader = shader_library.Load("./assets/shaders/texture.glsl");
texture = OpenEngine::Texture2D::Create("./assets/textures/container.jpg");
face = OpenEngine::Texture2D::Create("./assets/textures/awesomeface.png");
{
OE_PROFILE_SCOPE("Creating Textures");
texture = OpenEngine::Texture2D::Create("./assets/textures/container.jpg");
face = OpenEngine::Texture2D::Create("./assets/textures/awesomeface.png");
}
texture_shader->Bind();
texture_shader->SetInt("u_Texture", 0);
{
OE_PROFILE_SCOPE("Setting up shader uniforms");
texture_shader->Bind();
texture_shader->SetInt("u_Texture", 0);
texture_shader->SetVec4("u_Color", glm::vec4(1.0f));
}
for (auto joystick : OpenEngine::Input::GetJoystickList())
OE_DEBUG("Joystick {}: {}", joystick.first, joystick.second);
{
OE_PROFILE_SCOPE("Listing Joysticks");
for (auto joystick : OpenEngine::Input::GetJoystickList())
OE_DEBUG("Joystick {}: {}", joystick.first, joystick.second);
}
bindings = {
{"fwd/bckwd", 1},

54
application/include/sandbox2d.hpp Normal file → Executable file
View File

@@ -1,9 +1,9 @@
#ifndef SANDBOX2D_HPP
#define SANDBOX2D_HPP
#include <dlfcn.h>
#include <open_engine.hpp>
#include <dlfcn.h>
#include "imgui.h"
#include <glm/ext/matrix_transform.hpp>
@@ -22,13 +22,17 @@ class Sandbox2DLayer : public OpenEngine::Layer
void OnAttach() override
{
OE_PROFILE_FUNCTION();
bindings = {
{"fwd/bckwd", 1},
{"right/left", 0},
{"yaw", 2}
};
face = OpenEngine::Texture2D::Create("assets/textures/awesomeface.png");
{
OE_PROFILE_SCOPE("Texture2D Creation");
face = OpenEngine::Texture2D::Create("assets/textures/awesomeface.png");
}
}
void OnDetach() override
@@ -37,15 +41,19 @@ class Sandbox2DLayer : public OpenEngine::Layer
void OnUpdate() override
{
OpenEngine::RenderCommand::SetClearColor({0.11f, 0.11f, 0.15f, 1.0f});
OpenEngine::RenderCommand::Clear();
OpenEngine::Renderer2D::BeginScene(camera.GetCamera());
OpenEngine::Renderer2D::DrawQuad(glm::vec2(0.5f, 0.5f), glm::vec2(0.3f), glm::vec4(color[0], color[1], color[2], color[3]));
OpenEngine::Renderer2D::DrawQuad(glm::vec2(-0.2f, -0.2f), glm::vec2(0.5f, 0.2f), {0.5f, 0.3f, 0.8f, 1.0f});
OpenEngine::Renderer2D::DrawQuad(glm::vec3(0.0f, 0.0f, -0.1f), glm::vec2(1.0f, 1.0f), face);
OE_PROFILE_FUNCTION()
{
OE_PROFILE_SCOPE("Setting up Rendering");
OpenEngine::RenderCommand::SetClearColor({0.11f, 0.11f, 0.15f, 1.0f});
OpenEngine::RenderCommand::Clear();
OpenEngine::Renderer2D::BeginScene(camera.GetCamera());
}
{
OE_PROFILE_SCOPE("Drawing Quads");
OpenEngine::Renderer2D::DrawQuad(glm::vec2(0.5f, 0.5f), glm::vec2(0.3f), glm::vec4(color[0], color[1], color[2], color[3]));
OpenEngine::Renderer2D::DrawQuad(glm::vec2(-0.2f, -0.2f), glm::vec2(0.5f, 0.2f), {0.5f, 0.3f, 0.8f, 1.0f});
OpenEngine::Renderer2D::DrawQuad(glm::vec3(0.0f, 0.0f, -0.1f), glm::vec2(1.0f, 1.0f), face);
}
OpenEngine::Renderer2D::EndScene();
}
@@ -62,22 +70,38 @@ class Sandbox2DLayer : public OpenEngine::Layer
void OnEvent(OpenEngine::Event& event) override
{
OE_PROFILE_FUNCTION();
OpenEngine::EventDispatcher dispatcher(event);
//dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Sandbox2DLayer::StopRunning));
camera.OnEvent(event);
{
OE_PROFILE_SCOPE("Camera OnEvent");
camera.OnEvent(event);
}
}
void OnImGuiRender() override
{
OE_PROFILE_FUNCTION();
ImGui::Begin("Square settings");
ImGui::ColorEdit4("Square color", color);
for (auto& result : profiling_results)
{
char label[50];
strcpy(label, "%.3fms ");
strcat(label, result.name);
ImGui::Text(label, result.duration);
}
profiling_results.clear();
ImGui::End();
}
private:
//OpenEngine::ShaderLibrary shader_library;
glm::vec3 square_pos = glm::vec3(0.0f);
glm::vec4 square_color = glm::vec4(1.0f);
@@ -85,7 +109,9 @@ class Sandbox2DLayer : public OpenEngine::Layer
OpenEngine::Ref<OpenEngine::Texture2D> face;
std::unordered_map<std::string, unsigned int> bindings;
OpenEngine::OrthographicCameraController camera = {1280.0f / 1440.0f, 1.0f};
OpenEngine::OrthographicCameraController camera;
std::vector<OpenEngine::Time::ProfilingResult> profiling_results;
};
#endif // SANDBOX2D_HPP

View File

@@ -1,7 +1,7 @@
#include "open_engine/core.hpp"
#include <open_engine/core.hpp>
#include <control_layer.hpp>
#include <sandbox2d.hpp>
#include <sandbox.hpp>
#include <control_layer.hpp>
ControlLayer::ControlLayer(OpenEngine::Ref<OpenEngine::Layer> layer)
: active_layer(layer), OpenEngine::Layer("control_layer")
@@ -14,12 +14,19 @@ void ControlLayer::OnUpdate()
bool ControlLayer::SwitchLayer(OpenEngine::KeyPressedEvent& event)
{
OE_PROFILE_FUNCTION();
auto& app = OpenEngine::Application::Get();
OpenEngine::Ref<Layer> layer;
if (event.GetKeyCode() == OE_KEY_1) {
OE_PROFILE_SCOPE("Press Key 1");
OE_DEBUG("Sandbox2D Layer");
layer = OpenEngine::CreateRef<Sandbox2DLayer>();
{
OE_PROFILE_SCOPE("Creating SB2D");
layer = OpenEngine::CreateRef<Sandbox2DLayer>();
}
app.QueueLayerPush(layer);
app.QueueLayerPop(active_layer);
@@ -27,8 +34,13 @@ bool ControlLayer::SwitchLayer(OpenEngine::KeyPressedEvent& event)
return true;
} else if (event.GetKeyCode() == OE_KEY_2) {
OE_PROFILE_SCOPE("Press Key 2");
OE_DEBUG("Sandbox Layer");
layer = OpenEngine::CreateRef<SandboxLayer>();
{
OE_PROFILE_SCOPE("Creating SB");
layer = OpenEngine::CreateRef<SandboxLayer>();
}
app.QueueLayerPush(layer);
app.QueueLayerPop(active_layer);