1
0
Fork 0
spectre/source/Platform/PlatformApplication.h

42 lines
676 B
C++

#ifndef SPECTRE_PLATFORM_H
#define SPECTRE_PLATFORM_H
#include <Spectre/System/MessageQueue.h>
#include <Spectre/Core/NonCopyable.h>
namespace sp {
class Window;
class GLContext;
class PlatformWindow;
class PlatformInput;
class PlatformDisplay;
class PlatformApplication : NonCopyable
{
public :
static PlatformApplication* get();
virtual void init() = 0;
virtual void shutdown() = 0;
virtual PlatformWindow* createWindow(Window* window) = 0;
virtual GLContext* createGLContext() = 0;
virtual PlatformInput& getInput() = 0;
MessageQueue& getMessageQueue();
protected :
MessageQueue m_messageQueue;
};
} // namespace sp
#endif /* SPECTRE_PLATFORM_H */