// // Created by Иван Ильин on 14.01.2021. // #ifndef ENGINE_SCREEN_H #define ENGINE_SCREEN_H #include #include "Triangle.h" #include #include #include "utils/Time.h" #include "Mouse.h" #include "Consts.h" class Screen final { private: int _w; int _h; std::string _title; sf::Color _background; std::shared_ptr _window; public: void open(int screenWidth = Consts::STANDARD_SCREEN_WIDTH, int screenHeight = Consts::STANDARD_SCREEN_HEIGHT, const std::string& name = Consts::PROJECT_NAME, bool verticalSync = true, sf::Color background = Consts::BACKGROUND_COLOR, sf::Uint32 style = sf::Style::Default); void display(); void clear(); bool hasFocus() const { return _window->hasFocus(); } void drawTriangle(const Triangle& triangle); void drawTetragon(const Vec2D& p1, const Vec2D& p2, const Vec2D& p3, const Vec2D& p4, sf::Color color); void drawText(const std::string& string, const Vec2D& position, int size, sf::Color color); void drawText(const sf::Text& text); void drawSprite(const sf::Sprite& sprite); void setTitle(const std::string& title); [[nodiscard]] std::string title() const { return _title; }; bool isOpen(); [[nodiscard]] int width() const {return _window->getSize().x;} [[nodiscard]] int height() const {return _window->getSize().y;} void close(); void debugText(const std::string& text); void attachMouse(std::shared_ptr mouse); }; #endif //INC_3DZAVR_SCREEN_H