cleanup and instrumentation
This commit is contained in:
@@ -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
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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user