igraphic 0.2.0
Contrats graphiques chargeables : IGraphic2Module / IGraphic3Module
Loading...
Searching...
No Matches
IGraphic2Module.hpp
Go to the documentation of this file.
1
14#ifndef IGRAPHIC2_MODULE_HPP
15#define IGRAPHIC2_MODULE_HPP
16
17#include "window/IWindow2.hpp"
18
19#include "event/IGamepad.hpp"
20#include "event/IKeyboard.hpp"
21#include "event/IMouse.hpp"
22
23#include "graphic/IFont.hpp"
24#include "graphic/IPolygon.hpp"
25#include "graphic/ISprite.hpp"
26#include "graphic/IText.hpp"
27#include "graphic/ITexture.hpp"
28
29#include "IModule.hpp"
30
31
37class IGraphic2Module : public IModule {
38
39public:
41 static constexpr const char *entry = "getGraphic2Module";
42
45 static constexpr const char *contract = "graphic2";
46
59 static constexpr const char *accepts[] = {"graphic2", "graphic3", nullptr};
60
61 virtual ~IGraphic2Module() = default;
62
63 // window - nullptr quand le vendor ne peut pas en ouvrir une de plus
64 virtual graphic::IWindow2 *createWindow(int32_t screenWidth, int32_t screenHeight, std::string title) = 0;
65 virtual void deleteWindow(graphic::IWindow2 *) = 0;
66
82 virtual graphic::IWindow2 *window() = 0;
83
84 // keyboard - the window is handed over at construction, the way an
85 // ITexture is to an ISprite : the link can never be missing, and no
86 // method has to reconcile it later.
88 virtual void deleteKeyboard(graphic::IKeyboard *keyboard) = 0;
89 // mouse
91 virtual void deleteMouse(graphic::IMouse *mouse) = 0;
92 // gamepad - nullptr when this vendor has no such device
94 virtual void deleteGamepad(graphic::IGamepad *gamepad) = 0;
95
96 // texture
97 virtual graphic::ITexture *createTexture(std::string path) = 0;
98 virtual void deleteTexture(graphic::ITexture *texture) = 0;
99 // font
100 virtual graphic::IFont *createFont(std::string path) = 0;
101 virtual void deleteFont(graphic::IFont *font) = 0;
102
103 // polygon
104 virtual graphic::IPolygon *createPolygon(std::vector<Vector2f> points) = 0;
105 virtual void deletePolygon(graphic::IPolygon *polygon) = 0;
106 // sprite
108 virtual void deleteSprite(graphic::ISprite *sprite) = 0;
109 // text
110 virtual graphic::IText *createText(std::string text, graphic::IFont *font) = 0;
111 virtual void deleteText(graphic::IText *text) = 0;
112};
113
116#endif /* !IGRAPHIC2_MODULE_HPP */
A vendor's 2D factory : window, input, loaded resources and the objects that reference them....
Definition IGraphic2Module.hpp:37
virtual void deleteKeyboard(graphic::IKeyboard *keyboard)=0
virtual graphic::IKeyboard * createKeyboard(graphic::IWindow *window)=0
virtual graphic::IWindow2 * window()=0
La fenetre ouverte de ce vendor, nullptr s'il n'y en a pas.
virtual graphic::IWindow2 * createWindow(int32_t screenWidth, int32_t screenHeight, std::string title)=0
virtual ~IGraphic2Module()=default
static constexpr const char * contract
Definition IGraphic2Module.hpp:45
virtual graphic::IFont * createFont(std::string path)=0
virtual void deleteTexture(graphic::ITexture *texture)=0
virtual void deleteSprite(graphic::ISprite *sprite)=0
virtual void deleteFont(graphic::IFont *font)=0
static constexpr const char * accepts[]
Les contrats qui me satisfont, du plus general au plus precis.
Definition IGraphic2Module.hpp:59
virtual graphic::IText * createText(std::string text, graphic::IFont *font)=0
virtual void deleteWindow(graphic::IWindow2 *)=0
static constexpr const char * entry
Symbol the loader looks up : present = this vendor can draw 2D.
Definition IGraphic2Module.hpp:41
virtual void deleteGamepad(graphic::IGamepad *gamepad)=0
virtual void deleteText(graphic::IText *text)=0
virtual graphic::IMouse * createMouse(graphic::IWindow *window)=0
virtual graphic::ISprite * createSprite(graphic::ITexture *texture)=0
virtual graphic::IPolygon * createPolygon(std::vector< Vector2f > points)=0
virtual void deletePolygon(graphic::IPolygon *polygon)=0
virtual graphic::IGamepad * createGamepad(graphic::IWindow *window)=0
virtual void deleteMouse(graphic::IMouse *mouse)=0
virtual graphic::ITexture * createTexture(std::string path)=0
Loaded font data, independent of any IText that references it. Deleting every IText built with a font...
Definition IFont.hpp:22
Gamepad interface. Not every window can hand one out (a terminal backend has no controller) - IWindow...
Definition IGamepad.hpp:26
Keyboard interface.
Definition IKeyboard.hpp:78
Mouse interface.
Definition IMouse.hpp:30
Polygon interface.
Definition IPolygon.hpp:34
Sprite interface.
Definition ISprite.hpp:22
Text interface.
Definition IText.hpp:26
Loaded pixel data, independent of any ISprite that references it. Deleting every ISprite built from a...
Definition ITexture.hpp:23
A window that can draw 2D. Adds only the 2D drawing surface on top of IWindow's lifecycle/input.
Definition IWindow2.hpp:25
Window lifecycle. No drawing here : every window, 2D-capable or not, has to open, close and pump its ...
Definition IWindow.hpp:27