#pragma once #ifndef H_INPUT_ #define H_INPUT_ #include class InputHandlerImpl { public: InputHandlerImpl() = default; virtual ~InputHandlerImpl() = default; public: virtual size_t GetMouseX() = 0; virtual size_t GetMouseY() = 0; }; class InputHandler { public: static InputHandler* GetInstance() { if (!s_instance) s_instance = new InputHandler; return s_instance; } private: InputHandler(); public: size_t GetMouseX(); size_t GetMouseY(); private: static InputHandler* s_instance; InputHandlerImpl* m_impl; }; #endif // H_INPUT_