]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/Irrlicht.cpp
Remove CIrrDeviceiOS
[irrlicht.git] / source / Irrlicht / Irrlicht.cpp
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 \r
6 static const char* const copyright = "Irrlicht Engine (c) 2002-2017 Nikolaus Gebhardt"; // put string in binary\r
7 \r
8 #ifdef _IRR_WINDOWS_\r
9         #include <windows.h>\r
10         #if defined(_DEBUG) && !defined(__GNUWIN32__)\r
11                 #include <crtdbg.h>\r
12         #endif // _DEBUG\r
13 #endif\r
14 \r
15 #include "irrlicht.h"\r
16 #ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_\r
17 #include "CIrrDeviceWin32.h"\r
18 #endif\r
19 \r
20 #ifdef _IRR_COMPILE_WITH_X11_DEVICE_\r
21 #include "CIrrDeviceLinux.h"\r
22 #endif\r
23 \r
24 #ifdef _IRR_COMPILE_WITH_OSX_DEVICE_\r
25 #include "CIrrDeviceOSX.h"\r
26 #endif\r
27 \r
28 #ifdef _IRR_COMPILE_WITH_SDL_DEVICE_\r
29 #include "CIrrDeviceSDL.h"\r
30 #endif\r
31 \r
32 #ifdef _IRR_COMPILE_WITH_ANDROID_DEVICE_\r
33 #include "Android/CIrrDeviceAndroid.h"\r
34 #endif\r
35 \r
36 namespace irr\r
37 {\r
38         //! stub for calling createDeviceEx\r
39         IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDevice(video::E_DRIVER_TYPE driverType,\r
40                         const core::dimension2d<u32>& windowSize,\r
41                         u32 bits, bool fullscreen,\r
42                         bool stencilbuffer, bool vsync, IEventReceiver* res)\r
43         {\r
44                 (void)copyright;        // prevent unused variable warning\r
45 \r
46                 SIrrlichtCreationParameters p;\r
47                 p.DriverType = driverType;\r
48                 p.WindowSize = windowSize;\r
49                 p.Bits = (u8)bits;\r
50                 p.Fullscreen = fullscreen;\r
51                 p.Stencilbuffer = stencilbuffer;\r
52                 p.Vsync = vsync;\r
53                 p.EventReceiver = res;\r
54 \r
55                 return createDeviceEx(p);\r
56         }\r
57 \r
58         extern "C" IRRLICHT_API IrrlichtDevice* IRRCALLCONV createDeviceEx(const SIrrlichtCreationParameters& params)\r
59         {\r
60 \r
61                 IrrlichtDevice* dev = 0;\r
62 \r
63 #ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_\r
64                 if (params.DeviceType == EIDT_WIN32 || (!dev && params.DeviceType == EIDT_BEST))\r
65                         dev = new CIrrDeviceWin32(params);\r
66 #endif\r
67 \r
68 #ifdef _IRR_COMPILE_WITH_OSX_DEVICE_\r
69                 if (params.DeviceType == EIDT_OSX || (!dev && params.DeviceType == EIDT_BEST))\r
70                         dev = new CIrrDeviceMacOSX(params);\r
71 #endif\r
72 \r
73 #ifdef _IRR_COMPILE_WITH_X11_DEVICE_\r
74                 if (params.DeviceType == EIDT_X11 || (!dev && params.DeviceType == EIDT_BEST))\r
75                         dev = new CIrrDeviceLinux(params);\r
76 #endif\r
77 \r
78 #ifdef _IRR_COMPILE_WITH_ANDROID_DEVICE_\r
79                 if (params.DeviceType == EIDT_ANDROID || (!dev && params.DeviceType == EIDT_BEST))\r
80                         dev = new CIrrDeviceAndroid(params);\r
81 #endif\r
82 \r
83 #ifdef _IRR_COMPILE_WITH_SDL_DEVICE_\r
84                 if (params.DeviceType == EIDT_SDL || (!dev && params.DeviceType == EIDT_BEST))\r
85                         dev = new CIrrDeviceSDL(params);\r
86 #endif\r
87 \r
88                 if (dev && !dev->getVideoDriver() && params.DriverType != video::EDT_NULL)\r
89                 {\r
90                         dev->closeDevice(); // destroy window\r
91                         dev->run(); // consume quit message\r
92                         dev->drop();\r
93                         dev = 0;\r
94                 }\r
95 \r
96                 return dev;\r
97         }\r
98 \r
99 namespace core\r
100 {\r
101         const matrix4 IdentityMatrix(matrix4::EM4CONST_IDENTITY);\r
102 }\r
103 \r
104 namespace video\r
105 {\r
106         SMaterial IdentityMaterial;\r
107 \r
108         extern "C" IRRLICHT_API bool IRRCALLCONV isDriverSupported(E_DRIVER_TYPE driver)\r
109         {\r
110                 switch (driver) {\r
111                         case EDT_NULL: return true;\r
112 #ifdef _IRR_COMPILE_WITH_OPENGL_\r
113                         case EDT_OPENGL: return true;\r
114 #endif\r
115 #ifdef _IRR_COMPILE_WITH_OGLES1_\r
116                         case EDT_OGLES1: return true;\r
117 #endif\r
118 #ifdef _IRR_COMPILE_WITH_OGLES2_\r
119                         case EDT_OGLES2: return true;\r
120 #endif\r
121 #ifdef _IRR_COMPILE_WITH_WEBGL1_\r
122                         case EDT_WEBGL1: return true;\r
123 #endif\r
124                         default: return false;\r
125                 }\r
126         }\r
127 }\r
128 \r
129 } // end namespace irr\r
130 \r
131 \r
132 #if defined(_IRR_WINDOWS_API_) && !defined(_IRR_STATIC_LIB_)\r
133 \r
134 BOOL APIENTRY DllMain( HANDLE hModule,\r
135                        DWORD  ul_reason_for_call,\r
136                        LPVOID lpReserved )\r
137 {\r
138         // _crtBreakAlloc = 139;\r
139 \r
140     switch (ul_reason_for_call)\r
141         {\r
142                 case DLL_PROCESS_ATTACH:\r
143                         #if defined(_DEBUG) && !defined(__GNUWIN32__)\r
144                                 _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF | _CRTDBG_ALLOC_MEM_DF);\r
145                         #endif\r
146                         break;\r
147                 case DLL_THREAD_ATTACH:\r
148                 case DLL_THREAD_DETACH:\r
149                 case DLL_PROCESS_DETACH:\r
150                         break;\r
151     }\r
152     return TRUE;\r
153 }\r
154 \r
155 #endif // defined(_IRR_WINDOWS_)\r
156 \r