Ember
A C++ 20 'game engine' built with SDL3 with wide platform support.
|
#include <ember_core.h>
Public Member Functions | |
virtual | ~Renderer ()=default |
Renderer ()=default | |
virtual Shader * | GetDefaultShader ()=0 |
virtual Shader * | GetTextShader ()=0 |
virtual void | Initialize ()=0 |
virtual void | Flush ()=0 |
virtual void | FlushText ()=0 |
virtual Texture | LoadTexture (const std::string &file_path)=0 |
Load a texture on GPU given a file path. More... | |
virtual Font | LoadFont (const std::string &file_path, int font_size)=0 |
Load a TTF font on GPU given a file path. More... | |
virtual void | UnloadFont (const Font &font)=0 |
Unload the Font from CPU/GPU (cleanup) More... | |
virtual void | UnloadTexture (const Texture &texture)=0 |
Unload the Texture from GPU (cleanup) More... | |
virtual void | ClearBackground (const Color &color)=0 |
Window background color. More... | |
virtual void | BeginDrawing (const glm::mat4 &view_projection=0)=0 |
Starting of the drawing procedure. More... | |
virtual void | EndDrawing ()=0 |
End of the drawing procedure (swap buffers) More... | |
virtual 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)=0 |
Draw glyphs given a Loaded Font and text. More... | |
virtual void | DrawTexture (const Texture &texture, const Transform2D &transform, glm::vec2 size, const Color &color={255, 255, 255, 255})=0 |
Draw Texture quad at given Rectangle source. More... | |
virtual 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})=0 |
Draw Texture quad extended. More... | |
virtual void | DrawLine (glm::vec3 start, glm::vec3 end, const Color &color, float thickness=1.0f)=0 |
Draw Lines between two points. More... | |
virtual void | DrawTriangleFilled (glm::vec3 p0, glm::vec3 p1, glm::vec3 p2, const Color &color)=0 |
virtual void | DrawTriangle (glm::vec3 p0, glm::vec3 p1, glm::vec3 p2, const Color &color)=0 |
virtual void | DrawCircle (glm::vec3 position, float radius, const Color &color, int segments=32)=0 |
virtual void | DrawCircleFilled (glm::vec3 position, float radius, const Color &color, int segments=32)=0 |
virtual void | DrawRect (const Transform2D &transform, glm::vec2 size, const Color &color, float thickness=1.f)=0 |
Draw rectangle. More... | |
virtual void | DrawRectFilled (const Transform2D &transform, glm::vec2 size, const Color &color, float thickness=1.f)=0 |
Draw rectangle filled. More... | |
virtual void | BeginMode2D (const Camera2D &camera)=0 |
Begin 2D mode. More... | |
virtual void | EndMode2D ()=0 |
End 2D mode. More... | |
virtual void | BeginCanvas ()=0 |
Begin Canvas Procedure. More... | |
virtual void | EndCanvas ()=0 |
End Canvas Procedure. More... | |
virtual void | Resize (int view_width, int view_height)=0 |
virtual void | SetContext (const void *ctx)=0 |
virtual void * | GetContext ()=0 |
virtual void | Destroy ()=0 |
Public Attributes | |
SDL_Window * | window = nullptr |
int | viewport [2] = {480, 270} |
RendererType | type = OPENGL |
Renderer struct.
|
virtualdefault |
|
default |
|
pure virtual |
Begin Canvas Procedure.
UI
Implemented in OpenglRenderer.
|
pure virtual |
Starting of the drawing procedure.
* * * * *
* Usage: * * BeginDrawing();
* @version 0.0.1 * @return void
Implemented in OpenglRenderer.
|
pure virtual |
Begin 2D mode.
Usage: BeginMode2D(camera);
Drawing * * * with
camera | the camera 2D |
Implemented in OpenglRenderer.
|
pure virtual |
Window background color.
color | Color in RGBA |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Draw Lines between two points.
start | vec2 start point |
end | * vec2 *end |
Vec2 | start |
Vec2 | end |
color | Color in RGBA |
thickness | float Line thickness |
@return void
Implemented in OpenglRenderer.
|
pure virtual |
Draw rectangle.
transform | |
size | rectangle size |
color | Color in RGBA |
thickness |
* * * * float
Implemented in OpenglRenderer.
|
pure virtual |
Draw rectangle filled.
transform | |
size | rectangle size |
color | Color in RGBA |
thickness |
* * * * void
Implemented in OpenglRenderer.
|
pure virtual |
Draw glyphs given a Loaded Font and text.
@version * * *
font | The loaded Font TTF |
text | The text to draw, can be dynamic |
transform | |
transform | |
Implemented in OpenglRenderer.
|
pure virtual |
Draw Texture quad at given Rectangle source.
Implemented in OpenglRenderer.
|
pure virtual |
Draw Texture quad extended.
* * * * * @version
texture | The loaded Texture |
rect | The source Rectangle |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
End Canvas Procedure.
* * void
Implemented in OpenglRenderer.
|
pure virtual |
|
pure virtual |
End 2D mode.
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Load a TTF
font on GPU
given a file path.
GPU
* * * @param
assets
folder Implemented in OpenglRenderer.
|
pure virtual |
Load a texture on GPU
given a file path.
GPU
* * @version * *
file_path | the path to the file in assets folder |
* * Texture
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Implemented in OpenglRenderer.
|
pure virtual |
Unload the Font from CPU/GPU (cleanup)
font | The loaded Font @return * * * *
|
Implemented in OpenglRenderer.
|
pure virtual |
Unload the Texture from GPU (cleanup)
texture | The loaded Texture |
* * * @return
Implemented in OpenglRenderer.
RendererType Renderer::type = OPENGL |
int Renderer::viewport[2] = {480, 270} |
SDL_Window* Renderer::window = nullptr |