1
// Copyright (C) 2002-2011 Nikolaus Gebhardt
2
// This file is part of the "Irrlicht Engine".
3
// For conditions of distribution and use, see copyright notice in irrlicht.h
5
#include "IrrCompileConfig.h"
7
static const char* const copyright = "Irrlicht Engine (c) 2002-2011 Nikolaus Gebhardt";
11
#if defined(_DEBUG) && !defined(__GNUWIN32__) && !defined(_WIN32_WCE)
17
#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
18
#include "CIrrDeviceWin32.h"
21
#ifdef _IRR_COMPILE_WITH_OSX_DEVICE_
22
#include "MacOSX/CIrrDeviceMacOSX.h"
25
#ifdef _IRR_COMPILE_WITH_WINDOWS_CE_DEVICE_
26
#include "CIrrDeviceWinCE.h"
29
#ifdef _IRR_COMPILE_WITH_X11_DEVICE_
30
#include "CIrrDeviceLinux.h"
33
#ifdef _IRR_COMPILE_WITH_SDL_DEVICE_
34
#include "CIrrDeviceSDL.h"
37
#ifdef _IRR_COMPILE_WITH_FB_DEVICE_
38
#include "CIrrDeviceFB.h"
41
#ifdef _IRR_COMPILE_WITH_CONSOLE_DEVICE_
42
#include "CIrrDeviceConsole.h"
47
//! stub for calling createDeviceEx
48
IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDevice(video::E_DRIVER_TYPE driverType,
49
const core::dimension2d<u32>& windowSize,
50
u32 bits, bool fullscreen,
51
bool stencilbuffer, bool vsync, IEventReceiver* res)
53
SIrrlichtCreationParameters p;
54
p.DriverType = driverType;
55
p.WindowSize = windowSize;
57
p.Fullscreen = fullscreen;
58
p.Stencilbuffer = stencilbuffer;
60
p.EventReceiver = res;
62
return createDeviceEx(p);
65
extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx(const SIrrlichtCreationParameters& params)
68
IrrlichtDevice* dev = 0;
70
#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
71
if (params.DeviceType == EIDT_WIN32 || (!dev && params.DeviceType == EIDT_BEST))
72
dev = new CIrrDeviceWin32(params);
75
#ifdef _IRR_COMPILE_WITH_OSX_DEVICE_
76
if (params.DeviceType == EIDT_OSX || (!dev && params.DeviceType == EIDT_BEST))
77
dev = new CIrrDeviceMacOSX(params);
80
#ifdef _IRR_COMPILE_WITH_WINDOWS_CE_DEVICE_
81
if (params.DeviceType == EIDT_WINCE || (!dev && params.DeviceType == EIDT_BEST))
82
dev = new CIrrDeviceWinCE(params);
85
#ifdef _IRR_COMPILE_WITH_X11_DEVICE_
86
if (params.DeviceType == EIDT_X11 || (!dev && params.DeviceType == EIDT_BEST))
87
dev = new CIrrDeviceLinux(params);
90
#ifdef _IRR_COMPILE_WITH_SDL_DEVICE_
91
if (params.DeviceType == EIDT_SDL || (!dev && params.DeviceType == EIDT_BEST))
92
dev = new CIrrDeviceSDL(params);
95
#ifdef _IRR_COMPILE_WITH_FB_DEVICE_
96
if (params.DeviceType == EIDT_FRAMEBUFFER || (!dev && params.DeviceType == EIDT_BEST))
97
dev = new CIrrDeviceFB(params);
100
#ifdef _IRR_COMPILE_WITH_CONSOLE_DEVICE_
101
if (params.DeviceType == EIDT_CONSOLE || (!dev && params.DeviceType == EIDT_BEST))
102
dev = new CIrrDeviceConsole(params);
105
if (dev && !dev->getVideoDriver() && params.DriverType != video::EDT_NULL)
107
dev->closeDevice(); // destroy window
108
dev->run(); // consume quit message
118
const matrix4 IdentityMatrix(matrix4::EM4CONST_IDENTITY);
123
SMaterial IdentityMaterial;
126
} // end namespace irr
129
#if defined(_IRR_WINDOWS_API_)
131
BOOL APIENTRY DllMain( HANDLE hModule,
132
DWORD ul_reason_for_call,
135
// _crtBreakAlloc = 139;
137
switch (ul_reason_for_call)
139
case DLL_PROCESS_ATTACH:
140
#if defined(_DEBUG) && !defined(__GNUWIN32__) && !defined(__BORLANDC__) && !defined (_WIN32_WCE) && !defined (_IRR_XBOX_PLATFORM_)
141
_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF | _CRTDBG_ALLOC_MEM_DF);
144
case DLL_THREAD_ATTACH:
145
case DLL_THREAD_DETACH:
146
case DLL_PROCESS_DETACH:
152
#endif // defined(_IRR_WINDOWS_)