//#include "SFML/Graphics.hpp"

#include "Application.h"

//int main() {
//    sf::RenderWindow window(sf::VideoMode(500, 500), "SFML works!"); // создаем окно 500 на 500 пикселей
//    window.setKeyRepeatEnabled(false); // оключил дублирование событий, чтобы цвет менялся лишь при нажании (2-ой пункт)
//    window.setFramerateLimit(25); // ограничиваем количество кадров в секунду 25-ью
//    sf::CircleShape circle{ 250 }; // создал кружок радиусом 250
//    // 4-ый пункт
//    //задаем точку origin в правом верхнем углу круга
//    sf::Vector2f pos_circle = circle.getOrigin();
//    pos_circle.x += 2 * circle.getRadius();
//    circle.setOrigin(pos_circle);
//    // задаем изначальную позицию круга в правом верхнем углу экрана
//    circle.setPosition(window.getSize().x, 0);
//    //#include <iostream>
//    //#include "SFML/Graphics.hpp"
//    //
//    //int main() {
//    //    sf::RenderWindow window(sf::VideoMode(500, 500), "SFML works!"); // создаем окно 500 на 500 пикселей
//    //    window.setKeyRepeatEnabled(false); // оключил дублирование событий, чтобы цвет менялся лишь при нажании (2-ой пункт)
//    //    window.setFramerateLimit(25); // ограничиваем количество кадров в секунду 25-ью
//    //    sf::CircleShape circle{ 250 }; // создал кружок радиусом 250
//    //    // 4-ый пункт
//    //    //задаем точку origin в правом верхнем углу круга
//    //    sf::Vector2f pos_circle = circle.getOrigin();
//    //    pos_circle.x += 2 * circle.getRadius();
//    //    circle.setOrigin(pos_circle);
//    //    // задаем изначальную позицию круга в правом верхнем углу экрана
//    //    circle.setPosition(window.getSize().x, 0);
//    //    //
//    //    sf::Event event;
//    //    while (window.isOpen()) { // запускаем цикл, который каждый кадр будет обрабатывать наше окно
//    //        while (window.pollEvent(event)) { // обрабатываю все накопившиеся за кадр события
//    //            if (event.type == sf::Event::Closed) // обрабатываю закрытие окна
//    //                window.close();
//    //            if (event.type == sf::Event::KeyPressed) { // обрабатываю нажатие клавиши (2-ой пукнт)
//    //                switch (event.key.code) {
//    //                    case sf::Keyboard::Space: // если нажат пробел - меняю цвет
//    //                        circle.setFillColor(sf::Color{sf::Uint8(rand() % 256u), sf::Uint8(rand() % 256u), sf::Uint8(rand() % 256u)}); // закрашиваем круг случайным цветом из всей палитры
//    //                        break;
//    //                }
//    //            }
//    //            // 5-ый пункт
//    //            if (event.type == sf::Event::Resized) { // если изменился размер окна
//    //                sf::View view = window.getView(); // возьмём текущий View
//    //                view.setSize(event.size.width, event.size.height); // изменим его
//    //                window.setView(view); // зададим изменённый View окну
//    //            }
//    //            //
//    //        }
//    //
//    //        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Enter)) // real time input (отслеживаем длительное нажатие) (3-ий пункт)
//    //            circle.scale({ 0.99, 0.99 }); // уменьшаем круг на 1%
//    //
//    //            // 6-ой пункт
//    //        // Рисуем в основном виде
//    //        sf::View view = window.getView();
//    //        view.setViewport({ 0.0, 0.0, 1.0, 1.0 }); // отобразить на всём окне
//    //        window.setView(view);
//    //        window.draw(circle);
//    //
//    //        // Рисуем в левой нижней четверти
//    //        view.setViewport({ 0., 0.8, 0.2, 0.2 }); // отобразить снизу слева мини
//    //        window.setView(view);
//    //        window.draw(circle);
//    //
//    //        window.display();
//    //        view.setViewport({ 0.0, 0.0, 1.0, 1.0 }); // отобразить на всём окне
//    //        window.setView(view);
//    //        window.draw(circle);
//    //
//    //        // Рисуем в левой нижней четверти
//    //        view.setViewport({ 0., 0.8, 0.2, 0.2 }); // отобразить снизу слева мини
//    //        window.setView(view);
//    //        window.draw(circle);
//    //    }
//    //}
//    sf::Event event;
//    while (window.isOpen()) { // запускаем цикл, который каждый кадр будет обрабатывать наше окно
//        while (window.pollEvent(event)) { // обрабатываю все накопившиеся за кадр события
//            if (event.type == sf::Event::Closed) // обрабатываю закрытие окна
//                window.close();
//            if (event.type == sf::Event::KeyPressed) { // обрабатываю нажатие клавиши (2-ой пукнт)
//                switch (event.key.code) {
//                    case sf::Keyboard::Space: // если нажат пробел - меняю цвет
//                        circle.setFillColor(sf::Color{sf::Uint8(rand() % 256u), sf::Uint8(rand() % 256u), sf::Uint8(rand() % 256u)}); // закрашиваем круг случайным цветом из всей палитры
//                        break;
//                }
//            }
//            // 5-ый пункт
//            if (event.type == sf::Event::Resized) { // если изменился размер окна
//                sf::View view = window.getView(); // возьмём текущий View
//                view.setSize(event.size.width, event.size.height); // изменим его
//                window.setView(view); // зададим изменённый View окну
//            }
//            //
//        }
//
//        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Enter)) // real time input (отслеживаем длительное нажатие) (3-ий пункт)
//            circle.scale({ 0.99, 0.99 }); // уменьшаем круг на 1%
//
//            // 6-ой пункт
//        // Рисуем в основном виде
//        sf::View view = window.getView();
//        view.setViewport({ 0.0, 0.0, 1.0, 1.0 }); // отобразить на всём окне
//        window.setView(view);
//        window.draw(circle);
//
//        // Рисуем в левой нижней четверти
//        view.setViewport({ 0., 0.8, 0.2, 0.2 }); // отобразить снизу слева мини
//        window.setView(view);
//        window.draw(circle);
//
//        window.display();
//        view.setViewport({ 0.0, 0.0, 1.0, 1.0 }); // отобразить на всём окне
//        window.setView(view);
//        window.draw(circle);
//
//        // Рисуем в левой нижней четверти
//        view.setViewport({ 0., 0.8, 0.2, 0.2 }); // отобразить снизу слева мини
//        window.setView(view);
//        window.draw(circle);
//    }
//}

int main() {
    Application app;
    return app.run();
}