1 #ifndef WINDOW_MANAGER_H 2 #define WINDOW_MANAGER_H 3 4 #ifndef WINDOW_TITLE 5 #define WINDOW_TITLE "SeriousProton Game" 6 #endif // WINDOW_TITLE 7 8 #include <SFML/Graphics.hpp> 9 #include "P.h" 10 #include "Renderable.h" 11 12 class WindowManager : public virtual PObject 13 { 14 private: 15 bool windowHasFocus; 16 float min_aspect_ratio; 17 bool allow_virtual_resize; 18 19 sf::Vector2i virtualSize; 20 sf::RenderWindow window; 21 RenderChain* renderChain; 22 bool fullscreen; 23 int fsaa; 24 public: 25 WindowManager(int virtualWidth, int virtualHeight, bool fullscreen, RenderChain* chain, int fsaa = 0); 26 virtual ~WindowManager(); 27 getVirtualSize()28 sf::Vector2i getVirtualSize() const { return virtualSize; } 29 void render(); 30 void close(); hasFocus()31 bool hasFocus() { return windowHasFocus; } 32 isFullscreen()33 bool isFullscreen() { return fullscreen; } 34 void setFullscreen(bool fullscreen); getFSAA()35 int getFSAA() { return fsaa; } 36 void setFSAA(int fsaa); 37 setAllowVirtualResize(bool allow)38 void setAllowVirtualResize(bool allow) { allow_virtual_resize = allow; setupView(); } setFrameLimit(int limit)39 void setFrameLimit(int limit) { window.setFramerateLimit(limit); } setTitle(string title)40 void setTitle(string title) { window.setTitle(title); } 41 42 sf::Vector2f mapPixelToCoords(const sf::Vector2i& point) const; 43 sf::Vector2i mapCoordsToPixel(const sf::Vector2f& point) const; 44 45 friend class InputHandler; 46 friend class Engine; 47 friend class Clipboard; 48 private: 49 void create(); 50 void setupView(); 51 }; 52 53 #endif//WINDOW_MANAGER_H 54