aboutsummaryrefslogtreecommitdiff
path: root/source/Irrlicht/CSDLManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Irrlicht/CSDLManager.cpp')
-rw-r--r--source/Irrlicht/CSDLManager.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/source/Irrlicht/CSDLManager.cpp b/source/Irrlicht/CSDLManager.cpp
new file mode 100644
index 0000000..3132b60
--- /dev/null
+++ b/source/Irrlicht/CSDLManager.cpp
@@ -0,0 +1,56 @@
+// Copyright (C) 2022 sfan5
+// This file is part of the "Irrlicht Engine".
+// For conditions of distribution and use, see copyright notice in Irrlicht.h
+
+#include "CSDLManager.h"
+
+#if defined(_IRR_COMPILE_WITH_SDL_DEVICE_) && defined(_IRR_COMPILE_WITH_OPENGL_)
+
+#include "CIrrDeviceSDL.h"
+#include "COpenGLCommon.h"
+
+namespace irr
+{
+namespace video
+{
+
+CSDLManager::CSDLManager(CIrrDeviceSDL* device) : IContextManager(), SDLDevice(device)
+{
+ #ifdef _DEBUG
+ setDebugName("CSDLManager");
+ #endif
+}
+
+bool CSDLManager::initialize(const SIrrlichtCreationParameters& params, const SExposedVideoData& data)
+{
+ Data = data;
+ return true;
+}
+
+const SExposedVideoData& CSDLManager::getContext() const
+{
+ return Data;
+}
+
+bool CSDLManager::activateContext(const SExposedVideoData& videoData, bool restorePrimaryOnZero)
+{
+ // unclear if this is still needed:
+ glFrontFace(GL_CW);
+ return true;
+}
+
+void* CSDLManager::getProcAddress(const std::string &procName)
+{
+ return SDL_GL_GetProcAddress(procName.c_str());
+}
+
+bool CSDLManager::swapBuffers()
+{
+ SDLDevice->SwapWindow();
+ return true;
+}
+
+}
+}
+
+#endif