#include #include #include #include #include #include #include #include #include #include "sprite_data.hpp" #include "keyboard_catcher_widget.hpp" #include "pixel_grid_sprite.hpp" namespace BGTU::ComputerGraphicsLabWork::Lab1 { int main(int argc, char **argv) { QApplication qApplication{argc, argv}; PixelGridSprite pixels_grid_sprite{RendererApi::Color{0, 0, 0}, RendererApi::Color{32, 32, 32}}; auto sprites = std::to_array *const>({ &pixels_grid_sprite }); Lab1SpriteData::Provider sprites_data{1}; sprites_data.set_pixel_size(16); QMainWindow w{}; KeyboardCatcherWidget kbd{&w}; QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_PageDown, &sprites_data, &Lab1SpriteData::Provider::decrease_pixel_size); QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_PageUp, &sprites_data, &Lab1SpriteData::Provider::increase_pixel_size); QtUtilities::SeparateThreadedDefaultRendererLinear renderer{}; renderer.set_sprite_data_provider(&sprites_data); renderer.set_sprites(sprites.data(), sprites.size()); renderer.set_background(BGTU::ComputerGraphicsLabWork::RendererApi::Color{0, 0, 0}); QtUtilities::RendererWidget canvas{&renderer, &kbd}; QObject::connect(&canvas, &QtUtilities::_RendererWidget_SignalSlots::resized, &sprites_data, &Lab1SpriteData::Provider::set_frame_size); w.setCentralWidget(&canvas); w.show(); QApplication::exec(); return 0; } } int main(int argc, char **argv) { return BGTU::ComputerGraphicsLabWork::Lab1::main(argc, argv); }