34 void Flush()
override;
38 void Resize(
int view_width,
int view_height)
override;
48 Font LoadFont(
const std::string& file_path,
int font_size)
override;
56 void BeginDrawing(
const glm::mat4& view_projection = 0)
override;
61 const ShaderEffect& shader_effect = {},
float kerning = 0.0f)
override;
64 const Color& color = {255, 255, 255, 255})
override;
67 glm::vec2 origin,
float rotation,
float zIndex = 0.0f,
const Color& color = {255, 255, 255, 255} )
override;
69 void DrawLine(glm::vec3 start, glm::vec3 end,
const Color& color,
float thickness)
override;
75 void DrawTriangle(glm::vec3 p0, glm::vec3 p1, glm::vec3 p2,
const Color& color)
override;
79 void DrawCircle(glm::vec3 position,
float radius,
const Color& color,
int segments = 32)
override;
81 void DrawCircleFilled(glm::vec3 position,
float radius,
const Color& color,
int segments = 32)
override;
97 float BindTexture(Uint32 slot = 0)
override ;
99 void Submit(
const Transform2D& transform, glm::vec2 size, glm::vec4 color, Uint32 slot = UINT32_MAX)
override;
101 glm::mat4 Projection;
103 GLuint _textVAO = 0, _textVBO = 0, _textEBO =0;
104 Vertex* _textBuffer =
nullptr;
105 int _textQuadCount = 0;
106 int _textIndexCount = 0;
107 unsigned int _currentFontTextureID = 0;
110 GLuint VAO = 0, VBO = 0, EBO = 0;
111 Vertex* _buffer =
nullptr;
114 Uint32 _textureArrayBuffer = 0;
116 std::array<unsigned int, MAX_TEXTURE_SLOTS> _textures = std::array<unsigned int, MAX_TEXTURE_SLOTS>();
117 int _textureCount = 0;
122 SDL_GLContext context =
nullptr;
Definition: ember_gl.h:24
void Destroy() override
Definition: ember_gl.cpp:123
void EndDrawing() override
End of the drawing procedure (swap buffers)
Definition: ember_gl.cpp:225
void EndCanvas() override
End Canvas Procedure.
Definition: ember_gl.cpp:720
void DrawTextureEx(const Texture &texture, const ember::Rectangle &source, const ember::Rectangle &dest, glm::vec2 origin, float rotation, float zIndex=0.0f, const Color &color={255, 255, 255, 255}) override
Draw Texture quad extended.
Definition: ember_gl.cpp:536
void DrawTriangle(glm::vec3 p0, glm::vec3 p1, glm::vec3 p2, const Color &color) override
Definition: ember_gl.cpp:624
void DrawTexture(const Texture &texture, const Transform2D &transform, glm::vec2 size, const Color &color={255, 255, 255, 255}) override
Draw Texture quad at given Rectangle source.
Definition: ember_gl.cpp:523
void FlushText() override
Definition: ember_gl.cpp:201
void BeginCanvas() override
Begin Canvas Procedure.
Definition: ember_gl.cpp:688
void UnloadTexture(const Texture &texture) override
Unload the Texture from GPU (cleanup)
Definition: ember_gl.cpp:824
void Flush() override
Definition: ember_gl.cpp:789
Texture LoadTexture(const std::string &file_path) override
Load a texture on GPU given a file path.
Definition: ember_gl.cpp:237
void SetContext(const void *ctx) override
Definition: ember_gl.cpp:115
void DrawText(const Font &font, const std::string &text, const Transform2D &transform, Color color, float font_size, const ShaderEffect &shader_effect={}, float kerning=0.0f) override
Draw glyphs given a Loaded Font and text.
Definition: ember_gl.cpp:457
void DrawLine(glm::vec3 start, glm::vec3 end, const Color &color, float thickness) override
Draw Lines between two points.
Definition: ember_gl.cpp:586
OpenglShader * default_shader
Definition: ember_gl.h:91
OpenglShader * GetTextShader() override
Definition: ember_gl.cpp:10
void DrawRect(const Transform2D &transform, glm::vec2 size, const Color &color, float thickness) override
Draw rectangle.
Definition: ember_gl.cpp:600
void BeginDrawing(const glm::mat4 &view_projection=0) override
Starting of the drawing procedure.
Definition: ember_gl.cpp:159
void DrawCircleFilled(glm::vec3 position, float radius, const Color &color, int segments=32) override
Definition: ember_gl.cpp:665
void * GetContext() override
Definition: ember_gl.cpp:119
void DrawRectFilled(const Transform2D &transform, glm::vec2 size, const Color &color, float thickness) override
Draw rectangle filled.
Definition: ember_gl.cpp:620
Font LoadFont(const std::string &file_path, int font_size) override
Load a TTF font on GPU given a file path.
Definition: ember_gl.cpp:335
void DrawCircle(glm::vec3 position, float radius, const Color &color, int segments=32) override
Definition: ember_gl.cpp:652
void BeginMode2D(const Camera2D &camera) override
Begin 2D mode.
Definition: ember_gl.cpp:683
OpenglShader * GetDefaultShader() override
Definition: ember_gl.cpp:6
void DrawTriangleFilled(glm::vec3 p0, glm::vec3 p1, glm::vec3 p2, const Color &color) override
Definition: ember_gl.cpp:632
void Initialize() override
Definition: ember_gl.cpp:14
void ClearBackground(const Color &color) override
Window background color.
Definition: ember_gl.cpp:151
OpenglShader * text_shader
Definition: ember_gl.h:92
void EndMode2D() override
End 2D mode.
Definition: ember_gl.cpp:685
void Resize(int view_width, int view_height) override
Definition: ember_gl.cpp:109
void UnloadFont(const Font &font) override
Unload the Font from CPU/GPU (cleanup)
Definition: ember_gl.cpp:819
Opengl Shader implementation.
Definition: shader_gl.h:19
Renderer struct.
Definition: ember_core.h:28
constexpr int MAX_INDICES
Definition: ember_gl.h:8
constexpr int MAX_QUADS
Definition: ember_gl.h:6
constexpr int MAX_TEXTURE_SLOTS
Definition: ember_gl.h:17
constexpr int MAX_VERTICES
Definition: ember_gl.h:7
Camera2D component.
Definition: camera.h:14
Definition: engine_structs.h:34
Definition: engine_structs.h:54
Definition: engine_structs.h:12
Vertex struct.
Definition: mesh.h:9
Definition: engine_structs.h:24