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