Skip to content

Commit ad8c8d4

Browse files
committed
See what an optional-y Window API would look like
1 parent 39b47d5 commit ad8c8d4

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/Mandelbrot.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,16 @@ int main()
8686
};
8787

8888
auto window
89-
= sf::RenderWindow(sf::VideoMode({ length, length }), "Mandelbrot", sf::Style::Default ^ sf::Style::Resize);
90-
window.setFramerateLimit(60);
91-
while (window.isOpen()) {
92-
while (const std::optional event = window.pollEvent()) {
89+
= std::make_optional<sf::RenderWindow>(sf::VideoMode({ length, length }), "Mandelbrot", sf::Style::Default ^ sf::Style::Resize);
90+
window->setFramerateLimit(60);
91+
while (window) {
92+
while (const std::optional event = window->pollEvent()) {
9393
if (event->is<sf::Event::Closed>()) {
94-
window.close();
94+
window.reset();
9595
} else if (const auto* key_pressed = event->getIf<sf::Event::KeyPressed>()) {
9696
switch (key_pressed->scancode) {
9797
case sf::Keyboard::Scan::Escape:
98-
window.close();
98+
window.reset();
9999
break;
100100
case sf::Keyboard::Scan::Up:
101101
origin = { origin.real(), origin.imag() + extent / 25 };
@@ -139,8 +139,8 @@ int main()
139139
recalculate = true;
140140
} else if (const auto* mouse_button_pressed = event->getIf<sf::Event::MouseButtonPressed>()) {
141141
origin += extent
142-
* Complex(double(mouse_button_pressed->position.x) / double(window.getSize().x) - 0.5,
143-
-double(mouse_button_pressed->position.y) / double(window.getSize().y) + 0.5);
142+
* Complex(double(mouse_button_pressed->position.x) / double(window->getSize().x) - 0.5,
143+
-double(mouse_button_pressed->position.y) / double(window->getSize().y) + 0.5);
144144
recalculate = true;
145145
} else if (const auto* mouse_wheel_scrolled = event->getIf<sf::Event::MouseWheelScrolled>()) {
146146
if (mouse_wheel_scrolled->delta > 0)
@@ -151,7 +151,7 @@ int main()
151151
}
152152
}
153153

154-
window.clear();
154+
window->clear();
155155

156156
if (recalculate) {
157157
recalculate = false;
@@ -165,9 +165,9 @@ int main()
165165
texture = sf::Texture::loadFromImage(image).value();
166166
}
167167

168-
window.draw(sf::Sprite(*texture));
169-
window.draw(text);
170-
window.display();
168+
window->draw(sf::Sprite(*texture));
169+
window->draw(text);
170+
window->display();
171171

172172
auto text_builder = std::ostringstream();
173173
text_builder << std::setw(2) << int(1 / clock.restart().asSeconds()) << " fps\n";

0 commit comments

Comments
 (0)