added batch rendering
This commit is contained in:
@@ -8,19 +8,18 @@
|
||||
"""
|
||||
*/
|
||||
|
||||
#include <glm/ext/matrix_clip_space.hpp>
|
||||
#include <open_engine.hpp>
|
||||
|
||||
#include <glm/ext/matrix_clip_space.hpp>
|
||||
#include "freetype/fttypes.h"
|
||||
#include "open_engine/events/event.hpp"
|
||||
#include "open_engine/logging.hpp"
|
||||
#include "open_engine/renderer/shader.hpp"
|
||||
#include "open_engine/ref_scope.hpp"
|
||||
#include "shmup.hpp"
|
||||
#include <freetype2/ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
#include <glad/glad.h>
|
||||
#include <map>
|
||||
|
||||
|
||||
struct Character {
|
||||
unsigned int texture_id; // ID handle of the glyph texture
|
||||
glm::ivec2 size; // Size of glyph
|
||||
@@ -31,7 +30,8 @@ struct Character {
|
||||
class Overlay : public OpenEngine::Layer
|
||||
{
|
||||
public:
|
||||
Overlay()
|
||||
Overlay(OpenEngine::Ref<Shmup>& shmup)
|
||||
: game_layer(shmup)
|
||||
{};
|
||||
|
||||
~Overlay() {};
|
||||
@@ -205,7 +205,36 @@ class Overlay : public OpenEngine::Layer
|
||||
|
||||
float x = height - 40;
|
||||
float y = 0;
|
||||
//RenderText("Test String", 0.0f, 0.0f, 1.0f, {0.8f, 0.3f, 0.2f});
|
||||
|
||||
switch (game_layer->GetGameState()) {
|
||||
case GameState::GameOver:
|
||||
{
|
||||
auto& window = OpenEngine::Application::Get().GetWindow();
|
||||
int width = window.GetWidth();
|
||||
int height = window.GetHeight();
|
||||
|
||||
float x = width / 2.0f;
|
||||
float y = height / 2.0f;
|
||||
RenderTextCentered("Game Over!", x, y, 1.0f, glm::vec3(0.8f, 0.2f, 0.3f));
|
||||
break;
|
||||
}
|
||||
case GameState::Paused:
|
||||
RenderTextCentered("Paused", x, y, 1.0f, glm::vec3(0.8f, 0.2f, 0.3f));
|
||||
break;
|
||||
case GameState::Playing:
|
||||
break;
|
||||
}
|
||||
|
||||
std::string s_score = "Score: " + std::to_string(game_layer->GetScore());
|
||||
std::string s_lives = std::to_string(game_layer->GetLives()) + " lives";
|
||||
RenderText(s_score, 10, OpenEngine::Application::Get().GetWindow().GetHeight() - 50, 1.0f, {0.8f, 0.2f, 0.3f});
|
||||
RenderText(
|
||||
s_lives,
|
||||
OpenEngine::Application::Get().GetWindow().GetWidth() - 220,
|
||||
OpenEngine::Application::Get().GetWindow().GetHeight() - 50,
|
||||
1.0f,
|
||||
{0.8f, 0.2f, 0.3f});
|
||||
|
||||
};
|
||||
|
||||
void OnEvent(OpenEngine::Event& event) override
|
||||
@@ -216,6 +245,7 @@ class Overlay : public OpenEngine::Layer
|
||||
std::map<char, Character> characters;
|
||||
OpenEngine::Ref<OpenEngine::Shader> text_shader;
|
||||
glm::mat4 projection;
|
||||
OpenEngine::Ref<Shmup> game_layer;
|
||||
|
||||
unsigned int VAO, VBO;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user