forked from Mirrorlandia_minetest/irrlicht
593103a261
In particular this makes the OpenGL procedure stuff work. fixes https://github.com/minetest/minetest/issues/12265
57 lines
1.1 KiB
C++
57 lines
1.1 KiB
C++
// 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
|