Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
drawing.h
Go to the documentation of this file.
1/*
2purpose: This file contains functions related to drawing shapes and images on the screen.
3
4Performance Notes:
5- Draw_FilledCircle: Optimized to use integer arithmetic and minimize sqrt calls
6- Draw_Hexagon/Draw_FilledHexagon: Use pre-calculated trigonometric values for better performance
7*/
8#pragma once
9
10#include "vector.h"
11#include <SDL_render.h>
12#include <SDL_pixels.h>
13
14static inline SDL_Color ToColor(const SDL_FColor&);
15static inline SDL_FColor ToFColor(const SDL_Color&);
16
17// Draws circle outline using Midpoint Circle Algorithm
18void Draw_Circle(int cx, int cy, int radius);
19
20// Draws filled circle using horizontal scanlines (optimized)
21void Draw_FilledCircle(int cx, int cy, int radius);
22
25 const Vector& p1,
26 const Vector& p2,
27 const Vector& p3,
28 SDL_FColor color);
29
30// Draws hexagon outline (optimized with pre-calculated trig values)
31void Draw_Hexagon(
33 float radius,
34 SDL_Color color);
35
36// Draws filled hexagon (optimized with pre-calculated trig values)
39 float radius,
40 SDL_FColor color);
41
42// Draws rectangle outline with float coordinates
43void Draw_Rectangle(const SDL_FRect* rect, SDL_Color color);
44
45void Draw_Text(const std::string& text, const SDL_FRect* rect, SDL_Color textcolor, SDL_Color backgroundcolor);
46
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
void Draw_Triangle(Vector p1, Vector p2, Vector p3)
Definition drawing.cpp:178
void Draw_FilledCircle(int cx, int cy, int radius)
Definition drawing.cpp:135
void Draw_Text(const std::string &text, const SDL_FRect *rect, SDL_Color textcolor, SDL_Color backgroundcolor)
Definition drawing.cpp:345
void Draw_Rectangle(const SDL_FRect *rect, SDL_Color color)
Definition drawing.cpp:309
static SDL_FColor ToFColor(const SDL_Color &)
static SDL_Color ToColor(const SDL_FColor &)
void Draw_FilledTriangle(const Vector &p1, const Vector &p2, const Vector &p3, SDL_FColor color)
Definition drawing.cpp:201
void Draw_Hexagon(Vector center, float radius, SDL_Color color)
Definition drawing.cpp:279
void Draw_FilledHexagon(Vector center, float radius, SDL_FColor color)
Definition drawing.cpp:231
void Draw_Circle(int cx, int cy, int radius)
Definition drawing.cpp:69