batch rendering

This commit is contained in:
Erris
2026-02-03 19:27:34 +01:00
parent 01a8f03451
commit 60bf9550cd
14 changed files with 160 additions and 52 deletions

View File

@@ -1,6 +1,7 @@
#ifndef SHMUP_HPP
#define SHMUP_HPP
#include <GL/gl.h>
#include <open_engine.hpp>
#include <fstream>
@@ -101,9 +102,11 @@ class Shmup : public OpenEngine::Layer
double delta = OpenEngine::Time::DeltaTime();
if (event.GetKeyCode() == OpenEngine::KeyCode::Right) {
tr1.position.x += 0.1f;
return true;
}
if (event.GetKeyCode() == OpenEngine::KeyCode::Left) {
tr1.position.x -= 0.1f;
return true;
}
if (tr1.position.y <= -0.9)
@@ -114,9 +117,9 @@ class Shmup : public OpenEngine::Layer
tr1.position.x = -0.8;
if (tr1.position.x >= 0.8)
tr1.position.x = 0.8;
}
return true;
return false;
}
void MoveEntities(double time_step) {
@@ -190,7 +193,8 @@ class Shmup : public OpenEngine::Layer
OE_PROFILE_FUNCTION()
{
OE_PROFILE_SCOPE("Setting up Rendering");
OpenEngine::RenderCommand::SetClearColor({0.11f, 0.11f, 0.15f, 1.0f});
//OpenEngine::RenderCommand::SetClearColor({0.11f, 0.11f, 0.15f, 1.0f});
OpenEngine::RenderCommand::SetClearColor({1.0f, 0.11f, 0.15f, 1.0f});
OpenEngine::RenderCommand::Clear();
OpenEngine::Renderer2D::BeginScene(camera.GetCamera());
}
@@ -311,9 +315,11 @@ class Shmup : public OpenEngine::Layer
{
if (event.GetKeyCode() == OpenEngine::KeyCode::Space) {
shooting = true;
return true;
}
if (state == GameState::GameOver && event.GetKeyCode() == OpenEngine::KeyCode::Enter) {
Reset();
return true;
}
return false;
@@ -330,10 +336,11 @@ class Shmup : public OpenEngine::Layer
void OnEvent(OpenEngine::Event& event) override
{
OE_PROFILE_FUNCTION();
OpenEngine::EventDispatcher dispatcher(event);
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Shmup::ProcessKeyPressedEvents));
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Shmup::MovePlayerShipDiscrete));
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(Shmup::ProcessKeyPressedEvents));
dispatcher.Dispatch<OpenEngine::KeyReleasedEvent>(BIND_EVENT_FN(Shmup::ProcessKeyReleased));
{
OE_PROFILE_SCOPE("Camera OnEvent");