Commit 89bafd12 authored by hybrid's avatar hybrid

Fix usage of OpenGL driver with multiple device types compiled in.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3634 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 42c816b6
...@@ -39,7 +39,7 @@ COpenGLDriver::COpenGLDriver(const irr::SIrrlichtCreationParameters& params, ...@@ -39,7 +39,7 @@ COpenGLDriver::COpenGLDriver(const irr::SIrrlichtCreationParameters& params,
CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8), CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8),
CurrentTarget(ERT_FRAME_BUFFER), CurrentTarget(ERT_FRAME_BUFFER),
Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer), Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer),
HDc(0), Window(static_cast<HWND>(params.WindowId)), Device(device), HDc(0), Window(static_cast<HWND>(params.WindowId)), Win32Device(device),
DeviceType(EIDT_WIN32) DeviceType(EIDT_WIN32)
{ {
#ifdef _DEBUG #ifdef _DEBUG
...@@ -466,7 +466,7 @@ COpenGLDriver::COpenGLDriver(const SIrrlichtCreationParameters& params, ...@@ -466,7 +466,7 @@ COpenGLDriver::COpenGLDriver(const SIrrlichtCreationParameters& params,
CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8), CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8),
CurrentTarget(ERT_FRAME_BUFFER), CurrentTarget(ERT_FRAME_BUFFER),
Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer), Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer),
Device(device), DeviceType(EIDT_OSX) OSXDevice(device), DeviceType(EIDT_OSX)
{ {
#ifdef _DEBUG #ifdef _DEBUG
setDebugName("COpenGLDriver"); setDebugName("COpenGLDriver");
...@@ -489,7 +489,7 @@ COpenGLDriver::COpenGLDriver(const SIrrlichtCreationParameters& params, ...@@ -489,7 +489,7 @@ COpenGLDriver::COpenGLDriver(const SIrrlichtCreationParameters& params,
RenderTargetTexture(0), CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8), RenderTargetTexture(0), CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8),
CurrentTarget(ERT_FRAME_BUFFER), CurrentTarget(ERT_FRAME_BUFFER),
Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer), Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer),
Device(device), DeviceType(EIDT_X11) X11Device(device), DeviceType(EIDT_X11)
{ {
#ifdef _DEBUG #ifdef _DEBUG
setDebugName("COpenGLDriver"); setDebugName("COpenGLDriver");
...@@ -571,7 +571,7 @@ COpenGLDriver::COpenGLDriver(const SIrrlichtCreationParameters& params, ...@@ -571,7 +571,7 @@ COpenGLDriver::COpenGLDriver(const SIrrlichtCreationParameters& params,
RenderTargetTexture(0), CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8), RenderTargetTexture(0), CurrentRendertargetSize(0,0), ColorFormat(ECF_R8G8B8),
CurrentTarget(ERT_FRAME_BUFFER), CurrentTarget(ERT_FRAME_BUFFER),
Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer), Doublebuffer(params.Doublebuffer), Stereo(params.Stereobuffer),
Device(device), DeviceType(EIDT_SDL) SDLDevice(device), DeviceType(EIDT_SDL)
{ {
#ifdef _DEBUG #ifdef _DEBUG
setDebugName("COpenGLDriver"); setDebugName("COpenGLDriver");
...@@ -797,7 +797,7 @@ bool COpenGLDriver::endScene() ...@@ -797,7 +797,7 @@ bool COpenGLDriver::endScene()
#ifdef _IRR_COMPILE_WITH_OSX_DEVICE_ #ifdef _IRR_COMPILE_WITH_OSX_DEVICE_
if (DeviceType == EIDT_OSX) if (DeviceType == EIDT_OSX)
{ {
Device->flush(); OSXDevice->flush();
return true; return true;
} }
#endif #endif
...@@ -850,7 +850,22 @@ bool COpenGLDriver::beginScene(bool backBuffer, bool zBuffer, SColor color, ...@@ -850,7 +850,22 @@ bool COpenGLDriver::beginScene(bool backBuffer, bool zBuffer, SColor color,
{ {
CNullDriver::beginScene(backBuffer, zBuffer, color, videoData, sourceRect); CNullDriver::beginScene(backBuffer, zBuffer, color, videoData, sourceRect);
changeRenderContext(videoData, Device); switch (DeviceType)
{
#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
case EIDT_WIN32:
changeRenderContext(videoData, Win32Device);
break;
#endif
#ifdef _IRR_COMPILE_WITH_X11_DEVICE_
case EIDT_X11:
changeRenderContext(videoData, X11Device);
break;
#endif
default:
changeRenderContext(videoData, (void*)0);
break;
}
#if defined(_IRR_COMPILE_WITH_SDL_DEVICE_) #if defined(_IRR_COMPILE_WITH_SDL_DEVICE_)
if (DeviceType == EIDT_SDL) if (DeviceType == EIDT_SDL)
......
...@@ -492,19 +492,19 @@ namespace video ...@@ -492,19 +492,19 @@ namespace video
HDC HDc; // Private GDI Device Context HDC HDc; // Private GDI Device Context
HWND Window; HWND Window;
#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_ #ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
CIrrDeviceWin32 *Device; CIrrDeviceWin32 *Win32Device;
#endif #endif
#endif #endif
#ifdef _IRR_COMPILE_WITH_X11_DEVICE_ #ifdef _IRR_COMPILE_WITH_X11_DEVICE_
GLXDrawable Drawable; GLXDrawable Drawable;
Display* X11Display; Display* X11Display;
CIrrDeviceLinux *Device; CIrrDeviceLinux *X11Device;
#endif #endif
#ifdef _IRR_COMPILE_WITH_OSX_DEVICE_ #ifdef _IRR_COMPILE_WITH_OSX_DEVICE_
CIrrDeviceMacOSX *Device; CIrrDeviceMacOSX *OSXDevice;
#endif #endif
#ifdef _IRR_COMPILE_WITH_SDL_DEVICE_ #ifdef _IRR_COMPILE_WITH_SDL_DEVICE_
CIrrDeviceSDL *Device; CIrrDeviceSDL *SDLDevice;
#endif #endif
E_DEVICE_TYPE DeviceType; E_DEVICE_TYPE DeviceType;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment