25 class X11 final :
public AWindow
30 ~X11()
override =
default;
32 X11(
const X11 &) =
delete;
33 X11 &operator=(
const X11 &) =
delete;
35 X11 &operator=(X11 &&) =
delete;
37 [[nodiscard]] std::string getName()
const override {
return "X11"; }
41 bool create(
const std::string &name, WindowSize size)
override;
42 void close()
override;
44 [[nodiscard]] NativeWindowHandle getNativeHandle()
const override
46 return {.window =
reinterpret_cast<void *
>(m_window), .display =
reinterpret_cast<void *
>(m_display)};
48 [[nodiscard]] WindowSize getWindowSize()
const override;
50 void setIcon(
const std::string &path)
const override;
52 [[nodiscard]]
bool shouldClose()
const override;
53 void pollEvents()
override;
54 bool pollEvent(WindowEvent &outEvent)
override;
56 bool wasResized()
const override {
return m_frameBufferResized; }
57 void resetResizedFlag()
override { m_frameBufferResized =
false; }
60 std::queue<WindowEvent> m_eventQueue;
61 Display *m_display =
nullptr;
63 WindowSize m_frameBufferSize;
64 mutable bool m_frameBufferResized =
false;
65 Atom m_wmDeleteMessage = 0;
66 bool m_shouldClose =
false;
This file contains the Window abstract class.