diff --git a/source/Platform/PlatformApplication.h b/source/Platform/PlatformApplication.h index f6d12e0..2c0dbbb 100644 --- a/source/Platform/PlatformApplication.h +++ b/source/Platform/PlatformApplication.h @@ -8,6 +8,7 @@ namespace sp { class Window; +class GLContext; class PlatformWindow; class PlatformInput; @@ -24,6 +25,8 @@ public : virtual PlatformWindow* createWindow(Window* window) = 0; + virtual GLContext* createGLContext() = 0; + virtual PlatformInput& getInput() = 0; MessageQueue& getMessageQueue(); diff --git a/source/Platform/Unix/UnixApplication.cpp b/source/Platform/Unix/UnixApplication.cpp index 08ad5d6..4778465 100644 --- a/source/Platform/Unix/UnixApplication.cpp +++ b/source/Platform/Unix/UnixApplication.cpp @@ -1,5 +1,6 @@ #include "X11Window.h" +#include "GLXContext.h" #include "UnixApplication.h" #include "Xlib.h" @@ -20,6 +21,11 @@ PlatformWindow* UnixApplication::createWindow(Window* window) return new X11Window(window); } +GLContext* UnixApplication::createGLContext() +{ + return new GLXContext(); +} + PlatformInput& UnixApplication::getInput() { return m_input; diff --git a/source/Platform/Unix/UnixApplication.h b/source/Platform/Unix/UnixApplication.h index b1d37f4..c9585ad 100644 --- a/source/Platform/Unix/UnixApplication.h +++ b/source/Platform/Unix/UnixApplication.h @@ -17,6 +17,8 @@ public : virtual PlatformWindow* createWindow(Window* window); + virtual GLContext* createGLContext(); + virtual PlatformInput& getInput(); protected : diff --git a/source/Platform/Win32/Win32Application.cpp b/source/Platform/Win32/Win32Application.cpp index 09dd3b4..3acb5c9 100644 --- a/source/Platform/Win32/Win32Application.cpp +++ b/source/Platform/Win32/Win32Application.cpp @@ -1,5 +1,6 @@ #include "Win32Window.h" +#include "Win32GLContext.h" #include "Win32Application.h" namespace sp { @@ -17,6 +18,11 @@ PlatformWindow* Win32Application::createWindow(Window* window) return new Win32Window(window); } +GLContext* Win32Application::createGLContext() +{ + return new Win32GLContext(); +} + PlatformInput& Win32Application::getInput() { return m_input; diff --git a/source/Platform/Win32/Win32Application.h b/source/Platform/Win32/Win32Application.h index ea1e074..c1929e6 100644 --- a/source/Platform/Win32/Win32Application.h +++ b/source/Platform/Win32/Win32Application.h @@ -20,6 +20,8 @@ public : virtual PlatformWindow* createWindow(Window* window); + virtual GLContext* createGLContext(); + virtual PlatformInput& getInput(); protected :