6 #pragma region OPENGL/ES
94 virtual Font LoadFont(
const std::string& file_path,
int font_size) = 0;
254 const ShaderEffect& shader_effect = {},
float kerning = 0.0f) = 0;
287 const Color& color = {255, 255, 255, 255}) = 0;
340 glm::vec2 origin,
float rotation,
float zIndex = 0.0f,
const Color& color = {255, 255, 255, 255}) = 0;
369 virtual void DrawLine(glm::vec3 start, glm::vec3 end,
const Color& color,
float thickness = 1.0f) = 0;
375 virtual void DrawCircle(glm::vec3 position,
float radius,
const Color& color,
int segments = 32) = 0;
511 virtual void Resize(
int view_width,
int view_height) = 0;
530 virtual float BindTexture(Uint32 slot = 0) = 0;
532 virtual void Submit(
const Transform2D& transform, glm::vec2 size, glm::vec4 color, Uint32 slot = UINT32_MAX) = 0;
Renderer struct.
Definition: ember_core.h:28
virtual void BeginDrawing(const glm::mat4 &view_projection=0)=0
Starting of the drawing procedure.
virtual void DrawRect(const Transform2D &transform, glm::vec2 size, const Color &color, float thickness=1.f)=0
Draw rectangle.
int viewport[2]
Definition: ember_core.h:36
virtual void BeginMode2D(const Camera2D &camera)=0
Begin 2D mode.
virtual void Resize(int view_width, int view_height)=0
virtual void EndMode2D()=0
End 2D mode.
virtual void ClearBackground(const Color &color)=0
Window background color.
virtual void EndDrawing()=0
End of the drawing procedure (swap buffers)
virtual void DrawRectFilled(const Transform2D &transform, glm::vec2 size, const Color &color, float thickness=1.f)=0
Draw rectangle filled.
virtual Font LoadFont(const std::string &file_path, int font_size)=0
Load a TTF font on GPU given a file path.
virtual Texture LoadTexture(const std::string &file_path)=0
Load a texture on GPU given a file path.
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.
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.
virtual void DrawTriangleFilled(glm::vec3 p0, glm::vec3 p1, glm::vec3 p2, const Color &color)=0
virtual void BeginCanvas()=0
Begin Canvas Procedure.
SDL_Window * window
Definition: ember_core.h:34
virtual Shader * GetTextShader()=0
virtual void Initialize()=0
virtual void DrawTriangle(glm::vec3 p0, glm::vec3 p1, glm::vec3 p2, const Color &color)=0
virtual void SetContext(const void *ctx)=0
virtual void EndCanvas()=0
End Canvas Procedure.
virtual Shader * GetDefaultShader()=0
virtual void UnloadTexture(const Texture &texture)=0
Unload the Texture from GPU (cleanup)
virtual void FlushText()=0
virtual void DrawCircle(glm::vec3 position, float radius, const Color &color, int segments=32)=0
virtual void UnloadFont(const Font &font)=0
Unload the Font from CPU/GPU (cleanup)
virtual void DrawLine(glm::vec3 start, glm::vec3 end, const Color &color, float thickness=1.0f)=0
Draw Lines between two points.
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.
virtual void * GetContext()=0
virtual ~Renderer()=default
RendererType type
Definition: ember_core.h:38
virtual void DrawCircleFilled(glm::vec3 position, float radius, const Color &color, int segments=32)=0
Shader Abstract class.
Definition: shader.h:44
RendererType
Backend OpenGL or Metal
Definition: engine.h:30
@ OPENGL
Definition: engine.h:30
Camera2D component.
Definition: camera.h:14
Definition: engine_structs.h:34
Definition: engine_structs.h:54
Definition: engine_structs.h:12
Definition: engine_structs.h:24