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-2024 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 "Color.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
62
63[[deprecated("Use drawEllipse(Mat3, float, float, float) instead")]]
65void drawEllipse(float xmid, float ymid, float width, float height, float startAngle = 0);
66
67void drawEllipse(Vec2, float width, float height, float startAngle = 0);
68
69void drawEllipse(Mat3 modelview, float width, float height, float startAngle = 0);
70
72void drawCircle(Vec2, float radius, float startAngle = 0);
73
74void drawCircle(Mat3 modelview, float radius, float startAngle);
75
76void drawCircle(Mat3 modelview, float radius);
77
79void drawCircle(Mat3 modelview, float radius, Rgba color);
80
83
84[[deprecated("Use drawCircle instead")]]
86void drawPoint(double x, double y);
87
89void drawTriangle(Vec2 a, Vec2 b, Vec2 c);
90
91[[deprecated("Use drawTriangle(Vec2, Vec2, Vec2) instead")]]
93void drawTriangle(double A_x, double A_y, double B_x, double B_y, double C_x, double C_y);
94
97[[deprecated("Use drawRect(const Mat3&, Vec2, Color) instead")]]
98void drawRect(double xposition, double yposition, double width, double height);
99
103void drawRect(Vec2 position, Vec2 size);
104
108void drawRect(const Mat3& modelview, Vec2 size, Rgb);
109
113void drawRect(const Mat3& modelview, Vec2 size, Rgba color);
114
115template <class Vect> void drawRect(Vect pos, Vect size) {
116 drawRect(pos.x, pos.y, size.x, size.y);
117}
118
119} // namespace jngl
Contains jngl::Color 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 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 }.