|
|
@ -8,7 +8,7 @@ |
|
|
|
#include "parser.hpp" |
|
|
|
#include "parser.hpp" |
|
|
|
|
|
|
|
|
|
|
|
int main(int argc, char *argv[]) { |
|
|
|
int main(int argc, char *argv[]) { |
|
|
|
dbc::check(argc >= 2, "USAGE: besos <monitor_count> my_fucking_slides.md"); |
|
|
|
dbc::check(argc >= 2, "USAGE: besos my_fucking_slides.md"); |
|
|
|
|
|
|
|
|
|
|
|
sfml::Backend backend; |
|
|
|
sfml::Backend backend; |
|
|
|
guecs::init(&backend); |
|
|
|
guecs::init(&backend); |
|
|
@ -18,7 +18,7 @@ int main(int argc, char *argv[]) { |
|
|
|
return a.size.x == WINDOW_WIDTH && a.size.y == WINDOW_HEIGHT; |
|
|
|
return a.size.x == WINDOW_WIDTH && a.size.y == WINDOW_HEIGHT; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
sf::RenderWindow controller(sf::VideoMode({400,400}), "Besos Loves Control"); |
|
|
|
sf::RenderWindow controller(sf::VideoMode({CONTROL_WIDTH, CONTROL_HEIGHT}), "Besos Loves Control"); |
|
|
|
|
|
|
|
|
|
|
|
sf::RenderWindow presenter(*screen_mode, |
|
|
|
sf::RenderWindow presenter(*screen_mode, |
|
|
|
"Besos Loves Slides", sf::Style::None, sf::State::Windowed); |
|
|
|
"Besos Loves Slides", sf::Style::None, sf::State::Windowed); |
|
|
@ -26,8 +26,8 @@ int main(int argc, char *argv[]) { |
|
|
|
presenter.setFramerateLimit(FRAME_LIMIT); |
|
|
|
presenter.setFramerateLimit(FRAME_LIMIT); |
|
|
|
presenter.setVerticalSyncEnabled(VSYNC); |
|
|
|
presenter.setVerticalSyncEnabled(VSYNC); |
|
|
|
|
|
|
|
|
|
|
|
int monitor_count = argc == 3 ? atoi(argv[1]) : 1; |
|
|
|
|
|
|
|
auto data = argc == 3 ? parse_slides(argv[2]) : parse_slides(argv[1]); |
|
|
|
auto data = parse_slides(argv[1]); |
|
|
|
|
|
|
|
|
|
|
|
SlidesUI slides(data); |
|
|
|
SlidesUI slides(data); |
|
|
|
slides.init(); |
|
|
|
slides.init(); |
|
|
@ -49,39 +49,12 @@ int main(int argc, char *argv[]) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
while (const auto event = controller.pollEvent()) { |
|
|
|
while (const auto event = controller.pollEvent()) { |
|
|
|
if(event->is<sf::Event::Closed>()) { |
|
|
|
if(event) control_ui.handle_events(controller, *event); |
|
|
|
controller.close(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(const auto* key = event->getIf<sf::Event::KeyPressed>()) { |
|
|
|
|
|
|
|
auto pos = presenter.getPosition(); |
|
|
|
|
|
|
|
auto size = presenter.getSize(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using KEY = sf::Keyboard::Scan; |
|
|
|
|
|
|
|
switch(key->scancode) { |
|
|
|
|
|
|
|
case KEY::A: |
|
|
|
|
|
|
|
if(true) { |
|
|
|
|
|
|
|
pos.x -= size.x; |
|
|
|
|
|
|
|
presenter.setPosition(pos); |
|
|
|
|
|
|
|
} break; |
|
|
|
|
|
|
|
case KEY::D: |
|
|
|
|
|
|
|
if(pos.x < int(size.x) * monitor_count) { |
|
|
|
|
|
|
|
pos.x += int(size.x); |
|
|
|
|
|
|
|
presenter.setPosition(pos); |
|
|
|
|
|
|
|
} break; |
|
|
|
|
|
|
|
case KEY::Q: |
|
|
|
|
|
|
|
controller.close(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fmt::println("window pos: {},{}", pos.x, pos.y); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
slides.render(presenter); |
|
|
|
slides.render(presenter); |
|
|
|
control_ui.render(controller); |
|
|
|
control_ui.render(controller); |
|
|
|
|
|
|
|
|
|
|
|
presenter.display(); |
|
|
|
presenter.display(); |
|
|
|
controller.display(); |
|
|
|
controller.display(); |
|
|
|
} |
|
|
|
} |
|
|
|