YAPOG  0.0.1
Yet Another Pokemon Online Game
IDrawingContext.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_IDRAWINGCONTEXT_HPP
2 # define YAPOG_IDRAWINGCONTEXT_HPP
3 
4 # include <SFML/Graphics/RenderTarget.hpp>
5 # include <SFML/Graphics/Drawable.hpp>
6 # include <SFML/Graphics/Color.hpp>
7 
8 # include "YAPOG/Macros.hpp"
9 # include "YAPOG/System/String.hpp"
11 
12 namespace yap
13 {
15  typedef String CameraMode;
16 
17  struct ICamera;
18  struct IDrawable;
19 
23  {
24  virtual ~IDrawingContext () {}
25 
29  virtual void AddCamera (const CameraMode& mode, ICamera* camera) = 0;
32  virtual void RemoveCamera (const CameraMode& mode) = 0;
33 
36  virtual const ICamera& GetCamera () const = 0;
39  virtual ICamera& GetCamera () = 0;
43  virtual const ICamera& GetCamera (const CameraMode& mode) const = 0;
47  virtual ICamera& GetCamera (const CameraMode& mode) = 0;
48 
51  virtual void SetMode (const CameraMode& mode) = 0;
55  virtual void SetDefaultMode (const CameraMode& mode) = 0;
57  virtual void SetDefaultCamera () = 0;
58 
61  virtual const sf::RenderTarget& GetRenderTarget () const = 0;
64  virtual sf::RenderTarget& GetRenderTarget () = 0;
65 
69  virtual void Draw (const sf::Drawable& drawable) = 0;
70 
71  virtual const sf::Color& GetTargetClearColor () const = 0;
72  virtual void SetTargetClearColor (const sf::Color& color) = 0;
73 
74  virtual void ChangeSize (const Vector2& size) = 0;
75  };
76 } // namespace yap
77 
78 #endif // YAPOG_IDRAWINGCONTEXT_HPP