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
33 enum class Key
34 {
35 Unknown,
36 Escape,
37 Enter,
38 Space,
39 Up,
40 Down,
41 Left,
42 Right,
43 A,
44 B,
45 C,
46 D,
47 E,
48 F,
49 G,
50 H,
51 I,
52 J,
53 K,
54 L,
55 M,
56 N,
57 O,
58 P,
59 Q,
60 R,
61 S,
62 T,
63 U,
64 V,
65 W,
66 X,
67 Y,
68 Z,
69 Num0,
70 Num1,
71 Num2,
72 Num3,
73 Num4,
74 Num5,
75 Num6,
76 Num7,
77 Num8,
78 Num9
79 };
80 enum class EventType
81 {
82 Closed,
85 None
86 };
87
93
95 {
96 unsigned int width;
97 unsigned int height;
98 };
99
100 ///
101 /// @class IRenderer
102 /// @brief Interface for the renderer
103 /// @namespace eng
104 ///
105 class IRenderer : public utl::IPlugin
106 {
107
108 public:
109 virtual void createWindow(const std::string &title, unsigned int height, unsigned int width,
110 unsigned int frameLimit, bool fullscreen) = 0;
111 [[nodiscard]] virtual bool windowIsOpen() const = 0;
112 virtual void closeWindow() = 0;
113 virtual void clearWindow(Color color) = 0;
114 virtual void displayWindow() = 0;
115 [[nodiscard]] virtual WindowSize getWindowSize() = 0;
116
117 [[nodiscard]] virtual bool pollEvent(Event &event) = 0;
118 virtual void setFrameLimit(unsigned int frameLimit) = 0;
119
120 virtual void createFont(const std::string &name, const std::string &path) = 0;
121 virtual void createText(Text text) = 0;
122 virtual void drawText(const std::string &name) = 0;
123 virtual void setTextContent(const std::string &name, const std::string &content) = 0;
124 virtual void setTextPosition(const std::string &name, float x, float y) = 0;
125 virtual void setTextColor(const std::string &name, Color color) = 0;
126
127 virtual void createTexture(const std::string &name, const std::string &path) = 0;
128 virtual void createSprite(const std::string &name, const std::string &textureName, float x, float y,
129 float scale_x = 1, float scale_y = 1, int fx = 0, int fy = 0, int fnx = -1,
130 int fny = -1) = 0;
131 virtual void drawSprite(const std::string &name) = 0;
132 virtual void setSpritePosition(const std::string &name, float x, float y) = 0;
133 virtual void setSpriteTexture(const std::string &name, const std::string &path) = 0;
134 virtual void setSpriteScale(const std::string &name, int x, int y) = 0;
135 virtual void setSpriteFrame(const std::string &name, int fx, int fy, int fnx, int fny) = 0;
136
137 virtual void drawPoint(float x, float y, Color color) = 0;
138
139 private:
140 }; // class IRenderer
141
142} // 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 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 setSpriteScale(const std::string &name, int x, int y)=0
virtual void createText(Text text)=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 bool pollEvent(Event &event)=0
virtual void setTextContent(const std::string &name, const std::string &content)=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 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:29
EventType
Definition IRenderer.hpp:81
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
Definition IRenderer.hpp:90
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
Definition IRenderer.hpp:96
unsigned int height
Definition IRenderer.hpp:97