aboutsummaryrefslogtreecommitdiff
path: root/src/renderer/opengl/GlRenderer.hpp
blob: d59ba459b5586d4dd8dce3b7f608712c2c1b81a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once

#include <renderer/Renderer.hpp>
#include <renderer/opengl/GlVertexBuffer.hpp>
#include <renderer/opengl/GlIndexBuffer.hpp>
#include <renderer/opengl/GlShader.hpp>

class GlRenderer : public Renderer {
public:
    GlRenderer(SDL_Window *window);
    ~GlRenderer() override;

    bool Init() override;
    void Draw(RenderGroup& render_group) override;
    void Present() override;

    void InitTexture();

private:
    void DrawBatch();

private:
    SDL_Window *m_Window;
    SDL_GLContext m_Context;

    GlVertexBuffer m_RectangleVertexBuffer;
    GlIndexBuffer m_RectangleIndexBuffer;
    GlShader m_RectangleShader;

    GlVertexBuffer m_TextVertexBuffer;
    GlVertexBuffer m_TextIndexBuffer;
    GlShader m_TextShader;
};