PERRY v1.0.0
P-E-R-R-Y/PERRY helps creating games with a bunch of tools.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
Graphic

Topics

 Raylib
 
 SDL
 
 SFML
 

Namespaces

namespace  graphic
 define graphic interfaces
 

Classes

interface  graphic::IEvent
 Event interface. More...
 
interface  graphic::IKeyboard
 Keyboard interface. More...
 
interface  graphic::IMouse
 Mouse interface. More...
 
interface  graphic::IModel
 Model interface. More...
 
struct  graphic::triangle_s
 Triangle structure. More...
 
interface  graphic::IPolygon
 Polygon interface. More...
 
interface  graphic::ISprite
 Sprite interface. More...
 
class  graphic::GraphicSharedLoader
 Use to dynamicaly load Graphic shared library. More...
 
interface  graphic::ICamera
 Camera interface. More...
 
interface  graphic::IWindow
 Window interface. More...
 

Typedefs

typedef struct graphic::triangle_s graphic::triangle_t
 Triangle structure.
 
using graphic::GraphicSharedLoader::Params = std::string
 

Enumerations

enum  graphic::IKeyboard::Keys {
  KEY_UNKNOWN = -1 , graphic::IKeyboard::KEY_ESCAPE , KEY_F1 , KEY_F2 ,
  KEY_F3 , KEY_F4 , KEY_F5 , KEY_F6 ,
  KEY_F7 , KEY_F8 , KEY_F9 , KEY_F10 ,
  KEY_F11 , KEY_F12 , graphic::IKeyboard::KEY_1 , KEY_2 ,
  KEY_3 , KEY_4 , KEY_5 , KEY_6 ,
  KEY_7 , KEY_8 , KEY_9 , KEY_0 ,
  KEY_MINUS , KEY_EQUAL , KEY_BACKSPACE , graphic::IKeyboard::KEY_TAB ,
  KEY_Q , KEY_W , KEY_E , KEY_R ,
  KEY_T , KEY_Y , KEY_U , KEY_I ,
  KEY_O , KEY_P , KEY_LEFT_BRACKET , KEY_RIGHT_BRACKET ,
  graphic::IKeyboard::KEY_CAPS_LOCK , KEY_LEFT_CONTROL , KEY_A , KEY_S ,
  KEY_D , KEY_F , KEY_G , KEY_H ,
  KEY_J , KEY_K , KEY_L , KEY_SEMICOLON ,
  KEY_APOSTROPHE , BACK_TICK , KEY_ENTER , graphic::IKeyboard::KEY_LEFT_SHIFT ,
  KEY_BACKSLASH , KEY_Z , KEY_X , KEY_C ,
  KEY_V , KEY_B , KEY_N , KEY_M ,
  KEY_COMMA , KEY_PERIOD , KEY_DOT , KEY_SLASH ,
  KEY_RIGHT_SHIFT , graphic::IKeyboard::KEY_LEFT_ALT , KEY_SPACE , KEY_RIGHT_ALT ,
  KEY_RIGHT_CONTROL , graphic::IKeyboard::KEY_PAD_0 , KEY_PAD_1 , KEY_PAD_2 ,
  KEY_PAD_3 , KEY_PAD_4 , KEY_PAD_5 , KEY_PAD_6 ,
  KEY_PAD_7 , KEY_PAD_8 , KEY_PAD_9 , KEY_PAD_MINUS ,
  KEY_PAD_PLUS , KEY_PAD_DOT , KEY_PAD_ENTER , graphic::IKeyboard::KEY_UP ,
  KEY_DOWN , KEY_LEFT , KEY_RIGHT , KEY_LENGTH
}
 Scan codes. More...
 
enum  Buttons {
  BUTTON_LEFT , BUTTON_RIGHT , BUTTON_MIDDLE , EXTRA_BUTTON_1 ,
  EXTRA_BUTTON_2
}
 
enum  Projection { PERSPECTIVE , ORTHOGRAPHIC }
 
enum  Mode {
  CUSTOM = 0 , FREE , ORBITAL , FIRST_PERSON ,
  THIRD_PERSON
}
 

Functions

virtual graphic::IKeyboard::~IKeyboard ()
 Destroy the IKeyboard object.
 
virtual std::vector< Keysgraphic::IKeyboard::whichKey () const =0
 Be careful, this function will check every key of the keyboard and return an array of keys that are pressed it's not recommended to use this function in a loop, use isKeyPressed() instead. it's efficient for key detection & binding.
 
virtual bool graphic::IKeyboard::isKeyPressed (Keys key) const =0
 Check if the key is pressed.
 
virtual bool graphic::IKeyboard::isKeyReleased (Keys key) const =0
 Check if the key is released.
 
virtual bool graphic::IKeyboard::isKeyDown (Keys key) const =0
 Check if the key is down.
 
virtual bool graphic::IKeyboard::isKeyUp (Keys key) const =0
 Check if the key is up.
 
virtual void graphic::IKeyboard::update ()=0
 Update the keyboard.
 
virtual graphic::IMouse::~IMouse ()=default
 Destroy the IMouse interface.
 
virtual bool graphic::IMouse::isButtonPressed (Buttons key) const =0
 notice if a button is pressed
 
virtual bool graphic::IMouse::isButtonDown (Buttons key) const =0
 notice if a button is down
 
virtual bool graphic::IMouse::isButtonReleased (Buttons key) const =0
 notice if a button is released
 
virtual bool graphic::IMouse::isButtonUp (Buttons key) const =0
 notice if a button is up
 
virtual __v2f_t graphic::IMouse::getPosition () const =0
 get the position of the mouse
 
virtual void graphic::IMouse::setPosition (__v2f_t position)=0
 set the position of the mouse
 
virtual float graphic::IMouse::GetMouseWheelMove () const =0
 get the mouse wheel move
 
virtual void graphic::IMouse::update ()=0
 set the mouse wheel move
 
virtual __v3f_t graphic::IModel::getPosition () const =0
 
virtual void graphic::IModel::setPosition (__v3f_t position)=0
 
virtual graphic::IPolygon::~IPolygon ()=default
 Destroy the IPolygon object.
 
virtual __color_t graphic::IPolygon::getColor () const =0
 Get the Color object.
 
virtual void graphic::IPolygon::setColor (__color_t position)=0
 Set the Color object.
 
virtual bool graphic::IPolygon::isReady () const =0
 Get the Position object.
 
virtual __v2f_t graphic::IPolygon::getPosition () const =0
 Get the Position object.
 
virtual void graphic::IPolygon::setPosition (__v2f_t position)=0
 Set the Position object.
 
virtual std::vector< __v2f_tgraphic::IPolygon::getPoints () const =0
 Get the Points object.
 
virtual graphic::ISprite::~ISprite ()=default
 Destroy the ISprite object.
 
virtual bool graphic::ISprite::isReady () const =0
 notice if the sprite is ready
 
virtual __v4f_t graphic::ISprite::getBounds () const =0
 give the bounds of the sprite
 
virtual void graphic::ISprite::setCrop (__v4f_t rect)=0
 Crop the sprite with a rectangle.
 
virtual __v2f_t graphic::ISprite::getPosition () const =0
 Get the Position object.
 
virtual void graphic::ISprite::setPosition (__v2f_t position)=0
 Set the Position object.
 
virtual float graphic::ISprite::getRotation () const =0
 Get the Rotation object.
 
virtual void graphic::ISprite::setRotation (float angle, bool isRad=false)=0
 Set the Rotation object.
 
virtual __v2f_t graphic::ISprite::getSize () const =0
 Get the Sprite size.
 
virtual void graphic::ISprite::setSize (__v2f_t size)=0
 Set the Sprite size.
 
 graphic::GraphicSharedLoader::GraphicSharedLoader (Params file)
 Construct a new Graphic Shared Loader object with every symbols from the shared library.
 
 graphic::GraphicSharedLoader::~GraphicSharedLoader ()=default
 Destroy the Graphic Shared Loader object.
 
virtual graphic::ICamera::~ICamera ()=default
 Destroy the ICamera object.
 
virtual float graphic::ICamera::getFov () const =0
 Get the FOV.
 
virtual void graphic::ICamera::setFov (float fov)=0
 Set the FOV.
 
virtual Mode graphic::ICamera::getMode () const =0
 Get the mode.
 
virtual void graphic::ICamera::setMode (Mode mode)=0
 Set the mode.
 
virtual __v3f_t graphic::ICamera::getPosition () const =0
 Get the position.
 
virtual void graphic::ICamera::setPosition (__v3f_t position)=0
 Set the position.
 
virtual Projection graphic::ICamera::getProjection () const =0
 Get the Projection.
 
virtual void graphic::ICamera::setProjection (Projection projection)=0
 Set the Projection.
 
virtual __v3f_t graphic::ICamera::getTarget () const =0
 Get the target.
 
virtual void graphic::ICamera::setTarget (__v3f_t size)=0
 Set the target.
 
virtual __v3f_t graphic::ICamera::getUp () const =0
 Get the up vector.
 
virtual void graphic::ICamera::setUp (__v3f_t up)=0
 Set the up vector.
 
virtual graphic::IWindow::~IWindow ()=default
 Destroy the IWindow object.
 
virtual bool graphic::IWindow::isOpen ()=0
 notice if the window is open
 
virtual void graphic::IWindow::close ()=0
 close the window
 
virtual void graphic::IWindow::setFrameLimit (__int32_t limit)=0
 Set the Frame Limit object.
 
virtual __int32_t graphic::IWindow::getDelta ()=0
 Get the Delta object.
 
virtual void graphic::IWindow::linkEvent (IEvent *event)=0
 link an event to the window
 
virtual void graphic::IWindow::beginDraw ()=0
 allowing to draw 2D on the window
 
virtual void graphic::IWindow::drawPoly (IPolygon *polygon)=0
 draw a polygon
 
virtual void graphic::IWindow::drawSprite (ISprite *model)=0
 draw a sprite
 
virtual void graphic::IWindow::endDraw ()=0
 end the 2D drawing
 
virtual void graphic::IWindow::beginMode3 (ICamera *camera)=0
 allowing to draw 3D on the window
 
virtual void graphic::IWindow::drawModel (IModel *model)=0
 draw a model
 
virtual void graphic::IWindow::endMode3 ()=0
 end the 3D drawing
 
virtual bool graphic::IWindow::pollEvent ()=0
 poll the event
 
virtual void graphic::IWindow::eventClose ()=0
 update the window
 

Variables

static const int graphic::IKeyboard::MAX_KEYS = 87
 
__v2f_t graphic::triangle_s::A
 
__v2f_t graphic::triangle_s::B
 
__v2f_t graphic::triangle_s::C
 
DynamicLoader graphic::GraphicSharedLoader::dl
 
graphic::IWindow *(* graphic::GraphicSharedLoader::createWindow )(int, int, std::string)
 Window.
 
void(* graphic::GraphicSharedLoader::deleteWindow )(graphic::IWindow *window)
 
graphic::IEvent *(* graphic::GraphicSharedLoader::createEvent )()
 Event.
 
void(* graphic::GraphicSharedLoader::deleteEvent )(graphic::IEvent *event)
 
graphic::IKeyboard *(* graphic::GraphicSharedLoader::createKeyboard )(graphic::IEvent *event)
 
void(* graphic::GraphicSharedLoader::deleteKeyboard )(graphic::IKeyboard *keyboard)
 
graphic::IMouse *(* graphic::GraphicSharedLoader::createMouse )(graphic::IEvent *event)
 
void(* graphic::GraphicSharedLoader::deleteMouse )(graphic::IMouse *mouse)
 
graphic::IPolygon *(* graphic::GraphicSharedLoader::createPolygon )(std::vector< __v2f_t > points)
 Graphics.
 
void(* graphic::GraphicSharedLoader::deletePolygon )(graphic::IPolygon *polygon)
 
graphic::ISprite *(* graphic::GraphicSharedLoader::createSprite )(std::string)
 
void(* graphic::GraphicSharedLoader::deleteSprite )(graphic::ISprite *sprite)
 
graphic::ICamera *(* graphic::GraphicSharedLoader::createCamera )()
 
void(* graphic::GraphicSharedLoader::deleteCamera )(graphic::ICamera *camera)
 
graphic::IModel *(* graphic::GraphicSharedLoader::createModel )()
 
void(* graphic::GraphicSharedLoader::deleteModel )(graphic::IModel *model)
 

Detailed Description

Enumeration Type Documentation

◆ Keys

Scan codes.

Enumerator
KEY_ESCAPE 

Line 0.

KEY_1 

Line 1.

KEY_TAB 

Line 2.

KEY_CAPS_LOCK 

Line 3.

KEY_LEFT_SHIFT 

Line 4.

KEY_LEFT_ALT 

Line 5.

KEY_PAD_0 

KEYPAD.

KEY_UP 

ARROWS.

Function Documentation

◆ beginDraw()

virtual void graphic::IWindow::beginDraw ( )
pure virtual

allowing to draw 2D on the window

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ beginMode3()

virtual void graphic::IWindow::beginMode3 ( ICamera * camera)
pure virtual

allowing to draw 3D on the window

Parameters
camera

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ close()

virtual void graphic::IWindow::close ( )
pure virtual

close the window

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ drawModel()

virtual void graphic::IWindow::drawModel ( IModel * model)
pure virtual

draw a model

Parameters
model

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ drawPoly()

virtual void graphic::IWindow::drawPoly ( IPolygon * polygon)
pure virtual

draw a polygon

Parameters
polygon

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ drawSprite()

virtual void graphic::IWindow::drawSprite ( ISprite * model)
pure virtual

draw a sprite

Parameters
model

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ endDraw()

virtual void graphic::IWindow::endDraw ( )
pure virtual

end the 2D drawing

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ endMode3()

virtual void graphic::IWindow::endMode3 ( )
pure virtual

end the 3D drawing

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ eventClose()

virtual void graphic::IWindow::eventClose ( )
pure virtual

update the window

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ getBounds()

virtual __v4f_t graphic::ISprite::getBounds ( ) const
pure virtual

give the bounds of the sprite

Returns
__v4f_t

Implemented in RaySprite, SdlSprite, and SfmlSprite.

◆ getColor()

virtual __color_t graphic::IPolygon::getColor ( ) const
pure virtual

Get the Color object.

Returns
__color_t

Implemented in RayPolygon, SdlPolygon, and SfmlPolygon.

◆ getDelta()

virtual __int32_t graphic::IWindow::getDelta ( )
pure virtual

Get the Delta object.

Returns
__int32_t

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ getFov()

virtual float graphic::ICamera::getFov ( ) const
pure virtual

Get the FOV.

Returns
float

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ getMode()

virtual Mode graphic::ICamera::getMode ( ) const
pure virtual

Get the mode.

Returns
Mode

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ GetMouseWheelMove()

virtual float graphic::IMouse::GetMouseWheelMove ( ) const
pure virtual

get the mouse wheel move

Returns
float

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ getPoints()

virtual std::vector< __v2f_t > graphic::IPolygon::getPoints ( ) const
pure virtual

Get the Points object.

Returns
std::vector<__v2f_t>

Implemented in RayPolygon, SdlPolygon, and SfmlPolygon.

◆ getPosition() [1/5]

virtual __v3f_t graphic::ICamera::getPosition ( ) const
pure virtual

Get the position.

Returns
__v3f_t

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ getPosition() [2/5]

virtual __v3f_t graphic::IModel::getPosition ( ) const
pure virtual

Implemented in SfmlModel.

◆ getPosition() [3/5]

virtual __v2f_t graphic::IMouse::getPosition ( ) const
pure virtual

get the position of the mouse

Returns
__v2f_t

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ getPosition() [4/5]

virtual __v2f_t graphic::IPolygon::getPosition ( ) const
pure virtual

Get the Position object.

Returns
__v2f_t

Implemented in RayPolygon, SdlPolygon, and SfmlPolygon.

◆ getPosition() [5/5]

virtual __v2f_t graphic::ISprite::getPosition ( ) const
pure virtual

Get the Position object.

Returns
__v2f_t

Implemented in RaySprite, SdlSprite, and SfmlSprite.

◆ getProjection()

virtual Projection graphic::ICamera::getProjection ( ) const
pure virtual

Get the Projection.

Returns
__v3f_t

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ getRotation()

virtual float graphic::ISprite::getRotation ( ) const
pure virtual

Get the Rotation object.

Returns
float

Implemented in RaySprite, SdlSprite, and SfmlSprite.

◆ getSize()

virtual __v2f_t graphic::ISprite::getSize ( ) const
pure virtual

Get the Sprite size.

Returns
__v2f_t

Implemented in RaySprite, SdlSprite, and SfmlSprite.

◆ getTarget()

virtual __v3f_t graphic::ICamera::getTarget ( ) const
pure virtual

Get the target.

Returns
__v3f_t

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ getUp()

virtual __v3f_t graphic::ICamera::getUp ( ) const
pure virtual

Get the up vector.

Returns
__v3f_t

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ GraphicSharedLoader()

graphic::GraphicSharedLoader::GraphicSharedLoader ( Params file)
inline

Construct a new Graphic Shared Loader object with every symbols from the shared library.

Parameters
file

◆ isButtonDown()

virtual bool graphic::IMouse::isButtonDown ( Buttons key) const
pure virtual

notice if a button is down

Parameters
key
Returns
true
false

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ isButtonPressed()

virtual bool graphic::IMouse::isButtonPressed ( Buttons key) const
pure virtual

notice if a button is pressed

Parameters
key
Returns
true
false

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ isButtonReleased()

virtual bool graphic::IMouse::isButtonReleased ( Buttons key) const
pure virtual

notice if a button is released

Parameters
key
Returns
true
false

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ isButtonUp()

virtual bool graphic::IMouse::isButtonUp ( Buttons key) const
pure virtual

notice if a button is up

Parameters
key
Returns
true
false

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ isKeyDown()

virtual bool graphic::IKeyboard::isKeyDown ( Keys key) const
pure virtual

Check if the key is down.

Parameters
key
Returns
bool

Implemented in RayKeyboard, SdlKeyboard, and SfmlKeyboard.

◆ isKeyPressed()

virtual bool graphic::IKeyboard::isKeyPressed ( Keys key) const
pure virtual

Check if the key is pressed.

Parameters
key
Returns
bool

Implemented in RayKeyboard, SdlKeyboard, and SfmlKeyboard.

◆ isKeyReleased()

virtual bool graphic::IKeyboard::isKeyReleased ( Keys key) const
pure virtual

Check if the key is released.

Parameters
key
Returns
bool

Implemented in RayKeyboard, SdlKeyboard, and SfmlKeyboard.

◆ isKeyUp()

virtual bool graphic::IKeyboard::isKeyUp ( Keys key) const
pure virtual

Check if the key is up.

Parameters
key
Returns
bool

Implemented in RayKeyboard, SdlKeyboard, and SfmlKeyboard.

◆ isOpen()

virtual bool graphic::IWindow::isOpen ( )
pure virtual

notice if the window is open

Returns
bool

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ isReady() [1/2]

virtual bool graphic::IPolygon::isReady ( ) const
pure virtual

Get the Position object.

Returns
__v2f_t

Implemented in RayPolygon, SdlPolygon, and SfmlPolygon.

◆ isReady() [2/2]

virtual bool graphic::ISprite::isReady ( ) const
pure virtual

notice if the sprite is ready

Returns
bool

Implemented in RaySprite, SdlSprite, and SfmlSprite.

◆ linkEvent()

virtual void graphic::IWindow::linkEvent ( IEvent * event)
pure virtual

link an event to the window

Parameters
event

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ pollEvent()

virtual bool graphic::IWindow::pollEvent ( )
pure virtual

poll the event

Returns
bool

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ setColor()

virtual void graphic::IPolygon::setColor ( __color_t position)
pure virtual

Set the Color object.

Parameters
position

Implemented in RayPolygon, and SdlPolygon.

◆ setCrop()

virtual void graphic::ISprite::setCrop ( __v4f_t rect)
pure virtual

Crop the sprite with a rectangle.

Parameters
rect

Implemented in SfmlSprite.

◆ setFov()

virtual void graphic::ICamera::setFov ( float fov)
pure virtual

Set the FOV.

Parameters
fov

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ setFrameLimit()

virtual void graphic::IWindow::setFrameLimit ( __int32_t limit)
pure virtual

Set the Frame Limit object.

Parameters
limit

Implemented in RayWindow, SdlWindow, and SfmlWindow.

◆ setMode()

virtual void graphic::ICamera::setMode ( Mode mode)
pure virtual

Set the mode.

Parameters
mode

◆ setPosition() [1/4]

virtual void graphic::ICamera::setPosition ( __v3f_t position)
pure virtual

Set the position.

Parameters
position

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ setPosition() [2/4]

virtual void graphic::IMouse::setPosition ( __v2f_t position)
pure virtual

set the position of the mouse

Parameters
position

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ setPosition() [3/4]

virtual void graphic::IPolygon::setPosition ( __v2f_t position)
pure virtual

Set the Position object.

Parameters
position

Implemented in RayPolygon, and SdlPolygon.

◆ setPosition() [4/4]

virtual void graphic::ISprite::setPosition ( __v2f_t position)
pure virtual

Set the Position object.

Parameters
position

Implemented in SfmlSprite.

◆ setProjection()

virtual void graphic::ICamera::setProjection ( Projection projection)
pure virtual

Set the Projection.

Parameters
projection

◆ setRotation()

virtual void graphic::ISprite::setRotation ( float angle,
bool isRad = false )
pure virtual

Set the Rotation object.

Parameters
angle
isRad

Implemented in RaySprite, SdlSprite, and SfmlSprite.

◆ setSize()

virtual void graphic::ISprite::setSize ( __v2f_t size)
pure virtual

Set the Sprite size.

Parameters
size

Implemented in SfmlSprite.

◆ setTarget()

virtual void graphic::ICamera::setTarget ( __v3f_t size)
pure virtual

Set the target.

Parameters
size

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ setUp()

virtual void graphic::ICamera::setUp ( __v3f_t up)
pure virtual

Set the up vector.

Parameters
up

Implemented in RayCamera, SdlCamera, and SfmlCamera.

◆ update() [1/2]

virtual void graphic::IKeyboard::update ( )
pure virtual

Update the keyboard.

Implemented in RayKeyboard, SdlKeyboard, and SfmlKeyboard.

◆ update() [2/2]

virtual void graphic::IMouse::update ( )
pure virtual

set the mouse wheel move

Parameters
move

Implemented in RayMouse, SdlMouse, and SfmlMouse.

◆ whichKey()

virtual std::vector< Keys > graphic::IKeyboard::whichKey ( ) const
pure virtual

Be careful, this function will check every key of the keyboard and return an array of keys that are pressed it's not recommended to use this function in a loop, use isKeyPressed() instead. it's efficient for key detection & binding.

Returns
Keys*

Implemented in RayKeyboard, SdlKeyboard, and SfmlKeyboard.