JNGL
Easy to use cross-platform 2D game library
Loading...
Searching...
No Matches
shapes.hpp
Go to the documentation of this file.
1// Copyright 2012-2025 Jan Niklas Hasse <jhasse@bixense.com>
2// For conditions of distribution and use, see copyright notice in LICENSE.txt
5#pragma once
6
7#include "Rgba.hpp"
8#include "Vec2.hpp"
9
10#include <cstdint>
11
12namespace jngl {
13
14class Mat3;
15class Rgba;
16
21
24
27void setColor(Rgb, unsigned char alpha);
28
29void setColor(unsigned char red, unsigned char green, unsigned char blue);
30
31void setColor(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha);
32
35void setAlpha(uint8_t alpha);
36
37[[deprecated("Use setAlpha instead")]]
39void pushAlpha(unsigned char alpha);
40
41[[deprecated("Use setAlpha instead")]]
43void popAlpha();
44
45[[deprecated("Use drawRect instead")]]
47void setLineWidth(float width);
48
50void drawLine(Vec2 start, Vec2 end);
51
52[[deprecated("Use drawLine(Vec2, Vec2) instead")]]
54void drawLine(double xstart, double ystart, double xend, double yend);
55
57void drawLine(Mat3 modelview, Vec2 start, Vec2 end);
58
60void drawLine(const Mat3& modelview, Vec2 end);
61
63void drawLine(const Mat3& modelview, Vec2 end, Rgba color);
64
65[[deprecated("Use drawEllipse(Mat3, float, float, float) instead")]]
67void drawEllipse(float xmid, float ymid, float width, float height, float startAngle = 0);
68
69void drawEllipse(Vec2, float width, float height, float startAngle = 0);
70
71void drawEllipse(Mat3 modelview, float width, float height, float startAngle = 0);
72
73void drawEllipse(Mat3 modelview, float width, float height, float startAngle, Rgba color);
74
76void drawCircle(Vec2, float radius, float startAngle = 0);
77
78void drawCircle(Mat3 modelview, float radius, float startAngle);
79
98void drawCircle(Mat3 modelview, float radius, float startAngle, Rgba color);
99
100void drawCircle(Mat3 modelview, float radius);
101
103void drawCircle(Mat3 modelview, float radius, Rgba color);
104
107
108[[deprecated("Use drawCircle instead")]]
110void drawPoint(double x, double y);
111
114
115[[deprecated("Use drawTriangle(Vec2, Vec2, Vec2) instead")]]
117void drawTriangle(double A_x, double A_y, double B_x, double B_y, double C_x, double C_y);
118
123
126[[deprecated("Use drawRect(const Mat3&, Vec2, Color) instead")]]
127void drawRect(double xposition, double yposition, double width, double height);
128
132void drawRect(Vec2 position, Vec2 size);
133
137void drawRect(const Mat3& modelview, Vec2 size, Rgb);
138
142void drawRect(Mat3 modelview, Vec2 size, Rgba color);
143
152void drawSquare(const Mat3& modelview, Rgba color);
153
154template <class Vect> void drawRect(Vect pos, Vect size) {
155 drawRect(pos.x, pos.y, size.x, size.y);
156}
157
158} // namespace jngl
Contains jngl::Rgba class.
Contains jngl::Vec2 class.
3x3 matrix
Definition Mat3.hpp:18
Object representing a RGB color, new version of jngl::Color (which will be deprecated in the future)
Definition Rgb.hpp:15
Object representing a RGBA color.
Definition Rgba.hpp:22
Two-dimensional vector.
Definition Vec2.hpp:36
JNGL's main namespace.
void drawSquare(const Mat3 &modelview, Rgba color)
Draws a square of size 1x1 centered at (0, 0) with the specified color.
void drawTriangle(Vec2 a, Vec2 b, Vec2 c)
Draws the triangle a -> b -> c.
void setAlpha(uint8_t alpha)
Sets the alpha value which should be used to draw primitives (0 = fully transparent,...
void pushAlpha(unsigned char alpha)
void setColor(Rgb)
Sets the color which should be used to draw primitives.
void drawEllipse(float xmid, float ymid, float width, float height, float startAngle=0)
void drawPoint(double x, double y)
void setLineWidth(float width)
jngl::Mat3 modelview()
Returns a copy of the global ModelView matrix.
void drawCircle(Vec2, float radius, float startAngle=0)
Angles in radian.
void drawLine(Vec2 start, Vec2 end)
Draws a line from start to end, the width can be set using setLineWidth.
void popAlpha()
void drawRect(double xposition, double yposition, double width, double height)
Draws a rectangle at { xposition, yposition }.