-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWindow.cpp
46 lines (46 loc) · 1.49 KB
/
Window.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <SFML/Graphics.hpp>
#include "Window.h"
Window::Window(const std::string &title, const sf::Vector2u &size) : m_windowTitle{title}, m_windowSize{size}
{
m_isClosed = false;
m_isFullscreen = false;
create();
}
Window::~Window() {}
void Window::destroy() { m_renderWindow.close(); }
void Window::create()
{
auto style = m_isFullscreen ? sf::Style::Fullscreen : sf::Style::Default;
sf::VideoMode videoMode{m_windowSize.x, m_windowSize.y, 32};
m_renderWindow.create(videoMode, m_windowTitle, style);
}
void Window::update()
{
sf::Event event;
while (m_renderWindow.pollEvent(event))
{
if(event.type == sf::Event::Closed)
{
m_isClosed=true;
}
if(event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::LAlt+sf::Keyboard::F4)
{
m_isClosed=true;
}
}
}
void Window::beginDraw() { m_renderWindow.clear(sf::Color::Black); }
void Window::endDraw() { m_renderWindow.display(); }
void Window::draw(sf::Drawable &drawable) { m_renderWindow.draw(drawable); }
void Window::toggleFullscreen()
{
m_isFullscreen = !m_isFullscreen;
destroy();
create();
}
// Some getters
sf::Vector2u Window::getWindowSize() const { return m_windowSize; }
sf::RenderWindow* Window::getRenderWindow() { return &m_renderWindow; }
std::string Window::getWindowTitle() const { return m_windowTitle; }
bool Window::isClosed() const { return m_isClosed; }
bool Window::isFullscreen() const { return m_isFullscreen; }