r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
IRenderer.hpp
Go to the documentation of this file.
1///
2/// @file IRenderer.hpp
3/// @brief This file contains the IRenderer class declaration
4/// @namespace eng
5///
6
7#pragma once
8
9#include <string>
10
12
13namespace eng
14{
15 struct Color
16 {
17 unsigned char r;
18 unsigned char g;
19 unsigned char b;
20 unsigned char a;
21 };
22 struct Text
23 {
24 std::string font_name;
26 std::string content;
27 unsigned int size;
28 float x;
29 float y;
30 std::string name;
31 };
32
34 {
35 std::string name;
36 float radius;
38 float x;
39 float y;
42 };
43
44 enum class Key
45 {
46 Unknown,
47 Escape,
48 Enter,
49 Space,
50 Up,
51 Down,
52 Left,
53 Right,
54 Delete,
55 Dot,
56 A,
57 B,
58 C,
59 D,
60 E,
61 F,
62 G,
63 H,
64 I,
65 J,
66 K,
67 L,
68 M,
69 N,
70 O,
71 P,
72 Q,
73 R,
74 S,
75 T,
76 U,
77 V,
78 W,
79 X,
80 Y,
81 Z,
82 Num0,
83 Num1,
84 Num2,
85 Num3,
86 Num4,
87 Num5,
88 Num6,
89 Num7,
90 Num8,
91 Num9,
93 };
94 enum class EventType
95 {
96 Closed,
99 None
100 };
101
107
109 {
110 unsigned int width;
111 unsigned int height;
112 };
113
114 ///
115 /// @interface IRenderer
116 /// @brief Interface for the renderer
117 /// @namespace eng
118 ///
119 class IRenderer : public utl::IPlugin
120 {
121
122 public:
123 virtual void createWindow(const std::string &title, unsigned int height, unsigned int width,
124 unsigned int frameLimit, bool fullscreen) = 0;
125 [[nodiscard]] virtual bool windowIsOpen() const = 0;
126 virtual void closeWindow() = 0;
127 virtual void clearWindow(Color color) = 0;
128 virtual void displayWindow() = 0;
129 [[nodiscard]] virtual WindowSize getWindowSize() = 0;
130 virtual void setWindowIcon(const std::string &path) = 0;
131
132 [[nodiscard]] virtual bool pollEvent(Event &event) = 0;
133 virtual void setFrameLimit(unsigned int frameLimit) = 0;
134
135 virtual void createFont(const std::string &name, const std::string &path) = 0;
136 virtual void createText(Text text) = 0;
137 virtual void drawText(const std::string &name) = 0;
138 virtual void setTextContent(const std::string &name, const std::string &content) = 0;
139 virtual void setTextPosition(const std::string &name, float x, float y) = 0;
140 virtual void setTextColor(const std::string &name, Color color) = 0;
141 virtual void setSpriteColor(const std::string &name, Color color) = 0;
142
143 virtual void createTexture(const std::string &name, const std::string &path) = 0;
144 virtual void createSprite(const std::string &name, const std::string &textureName, float x, float y,
145 float scale_x = 1, float scale_y = 1, int fx = 0, int fy = 0, int fnx = -1,
146 int fny = -1) = 0;
147 virtual void drawSprite(const std::string &name) = 0;
148 virtual void setSpritePosition(const std::string &name, float x, float y) = 0;
149 virtual void setSpriteTexture(const std::string &name, const std::string &path) = 0;
150 virtual void setSpriteScale(const std::string &name, int x, int y) = 0;
151 virtual void setSpriteFrame(const std::string &name, int fx, int fy, int fnx, int fny) = 0;
152 virtual void setSpriteRotation(const std::string &name, float rotation) = 0;
153 virtual void rotateSprite(const std::string &name, float rotation) = 0;
154 virtual void setSpriteOrigin(const std::string &name) = 0;
155
156 virtual void createCircleShape(CircleShape circleShape) = 0;
157 virtual void setCircleShapePosition(const std::string &name, float x, float y) = 0;
158 virtual void drawCircleShape(const std::string &name) = 0;
159
160 virtual void drawPoint(float x, float y, Color color) = 0;
161 virtual void renderGui(const WindowSize &windowSize) = 0;
162
163 private:
164 }; // class IRenderer
165} // namespace eng
This file contains the plugin interface.
Interface for the renderer.
virtual void setTextPosition(const std::string &name, float x, float y)=0
virtual void renderGui(const WindowSize &windowSize)=0
virtual bool windowIsOpen() const =0
virtual WindowSize getWindowSize()=0
virtual void createWindow(const std::string &title, unsigned int height, unsigned int width, unsigned int frameLimit, bool fullscreen)=0
virtual void drawPoint(float x, float y, Color color)=0
virtual void drawSprite(const std::string &name)=0
virtual void displayWindow()=0
virtual void setSpriteRotation(const std::string &name, float rotation)=0
virtual void setSpriteScale(const std::string &name, int x, int y)=0
virtual void setSpriteColor(const std::string &name, Color color)=0
virtual void createText(Text text)=0
virtual void setSpriteOrigin(const std::string &name)=0
virtual void createFont(const std::string &name, const std::string &path)=0
virtual void setSpritePosition(const std::string &name, float x, float y)=0
virtual void drawText(const std::string &name)=0
virtual void setSpriteTexture(const std::string &name, const std::string &path)=0
virtual void createSprite(const std::string &name, const std::string &textureName, float x, float y, float scale_x=1, float scale_y=1, int fx=0, int fy=0, int fnx=-1, int fny=-1)=0
virtual void closeWindow()=0
virtual void rotateSprite(const std::string &name, float rotation)=0
virtual bool pollEvent(Event &event)=0
virtual void setTextContent(const std::string &name, const std::string &content)=0
virtual void setWindowIcon(const std::string &path)=0
virtual void createCircleShape(CircleShape circleShape)=0
virtual void drawCircleShape(const std::string &name)=0
virtual void setFrameLimit(unsigned int frameLimit)=0
virtual void setTextColor(const std::string &name, Color color)=0
virtual void createTexture(const std::string &name, const std::string &path)=0
virtual void setCircleShapePosition(const std::string &name, float x, float y)=0
virtual void clearWindow(Color color)=0
virtual void setSpriteFrame(const std::string &name, int fx, int fy, int fnx, int fny)=0
Interface for plugins.
Definition IPlugin.hpp:38
EventType
Definition IRenderer.hpp:95
float outline_thickness
Definition IRenderer.hpp:40
std::string name
Definition IRenderer.hpp:35
unsigned char r
Definition IRenderer.hpp:17
unsigned char a
Definition IRenderer.hpp:20
unsigned char g
Definition IRenderer.hpp:18
unsigned char b
Definition IRenderer.hpp:19
EventType type
std::string font_name
Definition IRenderer.hpp:24
std::string content
Definition IRenderer.hpp:26
unsigned int size
Definition IRenderer.hpp:27
Color color
Definition IRenderer.hpp:25
std::string name
Definition IRenderer.hpp:30
unsigned int width
unsigned int height