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(const Mat3& modelview, Vec2 end);
58
59
60[[deprecated("Use drawEllipse(Mat3, float, float, float) instead")]]
62void drawEllipse(float xmid, float ymid, float width, float height, float startAngle = 0);
63
64void drawEllipse(Vec2, float width, float height, float startAngle = 0);
65
66void drawEllipse(Mat3 modelview, float width, float height, float startAngle = 0);
67
69void drawCircle(Vec2, float radius, float startAngle = 0);
70
71void drawCircle(Mat3 modelview, float radius, float startAngle);
72
73void drawCircle(Mat3 modelview, float radius);
74
76void drawCircle(Mat3 modelview, float radius, Rgba color);
77
80
81[[deprecated("Use drawCircle instead")]]
83void drawPoint(double x, double y);
84
86void drawTriangle(Vec2 a, Vec2 b, Vec2 c);
87
88[[deprecated("Use drawTriangle(Vec2, Vec2, Vec2) instead")]]
90void drawTriangle(double A_x, double A_y, double B_x, double B_y, double C_x, double C_y);
91
94[[deprecated("Use drawRect(const Mat3&, Vec2, Color) instead")]]
95void drawRect(double xposition, double yposition, double width, double height);
96
100void drawRect(Vec2 position, Vec2 size);
101
105void drawRect(const Mat3& modelview, Vec2 size, Color);
106
110void drawRect(const Mat3& modelview, Vec2 size, Rgba color);
111
112template <class Vect> void drawRect(Vect pos, Vect size) {
113 drawRect(pos.x, pos.y, size.x, size.y);
114}
115
116} // namespace jngl
Contains jngl::Color class.
Contains jngl::Vec2 class.
Object representing a RGB color.
Definition Color.hpp:28
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:12
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 }.