cleanup and instrumentation
This commit is contained in:
54
application/include/sandbox2d.hpp
Normal file → Executable file
54
application/include/sandbox2d.hpp
Normal file → Executable 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
|
||||
|
||||
Reference in New Issue
Block a user