aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/include/SIrrCreationParameters.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/irrlicht-1.8/include/SIrrCreationParameters.h')
-rw-r--r--libraries/irrlicht-1.8/include/SIrrCreationParameters.h602
1 files changed, 301 insertions, 301 deletions
diff --git a/libraries/irrlicht-1.8/include/SIrrCreationParameters.h b/libraries/irrlicht-1.8/include/SIrrCreationParameters.h
index 89dff19..63395d7 100644
--- a/libraries/irrlicht-1.8/include/SIrrCreationParameters.h
+++ b/libraries/irrlicht-1.8/include/SIrrCreationParameters.h
@@ -1,301 +1,301 @@
1// Copyright (C) 2002-2012 Nikolaus Gebhardt 1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine". 2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h 3// For conditions of distribution and use, see copyright notice in irrlicht.h
4 4
5#ifndef __I_IRRLICHT_CREATION_PARAMETERS_H_INCLUDED__ 5#ifndef __I_IRRLICHT_CREATION_PARAMETERS_H_INCLUDED__
6#define __I_IRRLICHT_CREATION_PARAMETERS_H_INCLUDED__ 6#define __I_IRRLICHT_CREATION_PARAMETERS_H_INCLUDED__
7 7
8#include "EDriverTypes.h" 8#include "EDriverTypes.h"
9#include "EDeviceTypes.h" 9#include "EDeviceTypes.h"
10#include "dimension2d.h" 10#include "dimension2d.h"
11#include "ILogger.h" 11#include "ILogger.h"
12#include "SExposedVideoData.h" 12#include "SExposedVideoData.h"
13 13
14namespace irr 14namespace irr
15{ 15{
16 class IEventReceiver; 16 class IEventReceiver;
17 17
18 //! Structure for holding Irrlicht Device creation parameters. 18 //! Structure for holding Irrlicht Device creation parameters.
19 /** This structure is used in the createDeviceEx() function. */ 19 /** This structure is used in the createDeviceEx() function. */
20 struct SIrrlichtCreationParameters 20 struct SIrrlichtCreationParameters
21 { 21 {
22 //! Constructs a SIrrlichtCreationParameters structure with default values. 22 //! Constructs a SIrrlichtCreationParameters structure with default values.
23 SIrrlichtCreationParameters() : 23 SIrrlichtCreationParameters() :
24 DeviceType(EIDT_BEST), 24 DeviceType(EIDT_BEST),
25 DriverType(video::EDT_BURNINGSVIDEO), 25 DriverType(video::EDT_BURNINGSVIDEO),
26 WindowSize(core::dimension2d<u32>(800, 600)), 26 WindowSize(core::dimension2d<u32>(800, 600)),
27 Bits(16), 27 Bits(16),
28 ZBufferBits(16), 28 ZBufferBits(16),
29 Fullscreen(false), 29 Fullscreen(false),
30 Stencilbuffer(false), 30 Stencilbuffer(false),
31 Vsync(false), 31 Vsync(false),
32 AntiAlias(0), 32 AntiAlias(0),
33 HandleSRGB(false), 33 HandleSRGB(false),
34 WithAlphaChannel(false), 34 WithAlphaChannel(false),
35 Doublebuffer(true), 35 Doublebuffer(true),
36 IgnoreInput(false), 36 IgnoreInput(false),
37 Stereobuffer(false), 37 Stereobuffer(false),
38 HighPrecisionFPU(false), 38 HighPrecisionFPU(false),
39 EventReceiver(0), 39 EventReceiver(0),
40 WindowId(0), 40 WindowId(0),
41 VideoData(0), 41 VideoData(0),
42#ifdef _DEBUG 42#ifdef _DEBUG
43 LoggingLevel(ELL_DEBUG), 43 LoggingLevel(ELL_DEBUG),
44#else 44#else
45 LoggingLevel(ELL_INFORMATION), 45 LoggingLevel(ELL_INFORMATION),
46#endif 46#endif
47 DisplayAdapter(0), 47 DisplayAdapter(0),
48 DriverMultithreaded(false), 48 DriverMultithreaded(false),
49 UsePerformanceTimer(true), 49 UsePerformanceTimer(true),
50 SDK_version_do_not_use(IRRLICHT_SDK_VERSION) 50 SDK_version_do_not_use(IRRLICHT_SDK_VERSION)
51 { 51 {
52 } 52 }
53 53
54 SIrrlichtCreationParameters(const SIrrlichtCreationParameters& other) : 54 SIrrlichtCreationParameters(const SIrrlichtCreationParameters& other) :
55 SDK_version_do_not_use(IRRLICHT_SDK_VERSION) 55 SDK_version_do_not_use(IRRLICHT_SDK_VERSION)
56 {*this = other;} 56 {*this = other;}
57 57
58 SIrrlichtCreationParameters& operator=(const SIrrlichtCreationParameters& other) 58 SIrrlichtCreationParameters& operator=(const SIrrlichtCreationParameters& other)
59 { 59 {
60 DeviceType = other.DeviceType; 60 DeviceType = other.DeviceType;
61 DriverType = other.DriverType; 61 DriverType = other.DriverType;
62 WindowSize = other.WindowSize; 62 WindowSize = other.WindowSize;
63 Bits = other.Bits; 63 Bits = other.Bits;
64 ZBufferBits = other.ZBufferBits; 64 ZBufferBits = other.ZBufferBits;
65 Fullscreen = other.Fullscreen; 65 Fullscreen = other.Fullscreen;
66 Stencilbuffer = other.Stencilbuffer; 66 Stencilbuffer = other.Stencilbuffer;
67 Vsync = other.Vsync; 67 Vsync = other.Vsync;
68 AntiAlias = other.AntiAlias; 68 AntiAlias = other.AntiAlias;
69 HandleSRGB = other.HandleSRGB; 69 HandleSRGB = other.HandleSRGB;
70 WithAlphaChannel = other.WithAlphaChannel; 70 WithAlphaChannel = other.WithAlphaChannel;
71 Doublebuffer = other.Doublebuffer; 71 Doublebuffer = other.Doublebuffer;
72 IgnoreInput = other.IgnoreInput; 72 IgnoreInput = other.IgnoreInput;
73 Stereobuffer = other.Stereobuffer; 73 Stereobuffer = other.Stereobuffer;
74 HighPrecisionFPU = other.HighPrecisionFPU; 74 HighPrecisionFPU = other.HighPrecisionFPU;
75 EventReceiver = other.EventReceiver; 75 EventReceiver = other.EventReceiver;
76 WindowId = other.WindowId; 76 WindowId = other.WindowId;
77 VideoData = other.VideoData; 77 VideoData = other.VideoData;
78 LoggingLevel = other.LoggingLevel; 78 LoggingLevel = other.LoggingLevel;
79 DriverMultithreaded = other.DriverMultithreaded; 79 DriverMultithreaded = other.DriverMultithreaded;
80 DisplayAdapter = other.DisplayAdapter; 80 DisplayAdapter = other.DisplayAdapter;
81 UsePerformanceTimer = other.UsePerformanceTimer; 81 UsePerformanceTimer = other.UsePerformanceTimer;
82 return *this; 82 return *this;
83 } 83 }
84 84
85 //! Type of the device. 85 //! Type of the device.
86 /** This setting decides the windowing system used by the device, most device types are native 86 /** This setting decides the windowing system used by the device, most device types are native
87 to a specific operating system and so may not be available. 87 to a specific operating system and so may not be available.
88 EIDT_WIN32 is only available on Windows desktops, 88 EIDT_WIN32 is only available on Windows desktops,
89 EIDT_WINCE is only available on Windows mobile devices, 89 EIDT_WINCE is only available on Windows mobile devices,
90 EIDT_COCOA is only available on Mac OSX, 90 EIDT_COCOA is only available on Mac OSX,
91 EIDT_X11 is available on Linux, Solaris, BSD and other operating systems which use X11, 91 EIDT_X11 is available on Linux, Solaris, BSD and other operating systems which use X11,
92 EIDT_SDL is available on most systems if compiled in, 92 EIDT_SDL is available on most systems if compiled in,
93 EIDT_CONSOLE is usually available but can only render to text, 93 EIDT_CONSOLE is usually available but can only render to text,
94 EIDT_BEST will select the best available device for your operating system. 94 EIDT_BEST will select the best available device for your operating system.
95 Default: EIDT_BEST. */ 95 Default: EIDT_BEST. */
96 E_DEVICE_TYPE DeviceType; 96 E_DEVICE_TYPE DeviceType;
97 97
98 //! Type of video driver used to render graphics. 98 //! Type of video driver used to render graphics.
99 /** This can currently be video::EDT_NULL, video::EDT_SOFTWARE, 99 /** This can currently be video::EDT_NULL, video::EDT_SOFTWARE,
100 video::EDT_BURNINGSVIDEO, video::EDT_DIRECT3D8, 100 video::EDT_BURNINGSVIDEO, video::EDT_DIRECT3D8,
101 video::EDT_DIRECT3D9, and video::EDT_OPENGL. 101 video::EDT_DIRECT3D9, and video::EDT_OPENGL.
102 Default: Software. */ 102 Default: Software. */
103 video::E_DRIVER_TYPE DriverType; 103 video::E_DRIVER_TYPE DriverType;
104 104
105 //! Size of the window or the video mode in fullscreen mode. Default: 800x600 105 //! Size of the window or the video mode in fullscreen mode. Default: 800x600
106 core::dimension2d<u32> WindowSize; 106 core::dimension2d<u32> WindowSize;
107 107
108 //! Minimum Bits per pixel of the color buffer in fullscreen mode. Ignored if windowed mode. Default: 16. 108 //! Minimum Bits per pixel of the color buffer in fullscreen mode. Ignored if windowed mode. Default: 16.
109 u8 Bits; 109 u8 Bits;
110 110
111 //! Minimum Bits per pixel of the depth buffer. Default: 16. 111 //! Minimum Bits per pixel of the depth buffer. Default: 16.
112 u8 ZBufferBits; 112 u8 ZBufferBits;
113 113
114 //! Should be set to true if the device should run in fullscreen. 114 //! Should be set to true if the device should run in fullscreen.
115 /** Otherwise the device runs in windowed mode. Default: false. */ 115 /** Otherwise the device runs in windowed mode. Default: false. */
116 bool Fullscreen; 116 bool Fullscreen;
117 117
118 //! Specifies if the stencil buffer should be enabled. 118 //! Specifies if the stencil buffer should be enabled.
119 /** Set this to true, if you want the engine be able to draw 119 /** Set this to true, if you want the engine be able to draw
120 stencil buffer shadows. Note that not all drivers are able to 120 stencil buffer shadows. Note that not all drivers are able to
121 use the stencil buffer, hence it can be ignored during device 121 use the stencil buffer, hence it can be ignored during device
122 creation. Without the stencil buffer no shadows will be drawn. 122 creation. Without the stencil buffer no shadows will be drawn.
123 Default: false. */ 123 Default: false. */
124 bool Stencilbuffer; 124 bool Stencilbuffer;
125 125
126 //! Specifies vertical syncronisation. 126 //! Specifies vertical syncronisation.
127 /** If set to true, the driver will wait for the vertical 127 /** If set to true, the driver will wait for the vertical
128 retrace period, otherwise not. May be silently ignored. 128 retrace period, otherwise not. May be silently ignored.
129 Default: false */ 129 Default: false */
130 bool Vsync; 130 bool Vsync;
131 131
132 //! Specifies if the device should use fullscreen anti aliasing 132 //! Specifies if the device should use fullscreen anti aliasing
133 /** Makes sharp/pixelated edges softer, but requires more 133 /** Makes sharp/pixelated edges softer, but requires more
134 performance. Also, 2D elements might look blurred with this 134 performance. Also, 2D elements might look blurred with this
135 switched on. The resulting rendering quality also depends on 135 switched on. The resulting rendering quality also depends on
136 the hardware and driver you are using, your program might look 136 the hardware and driver you are using, your program might look
137 different on different hardware with this. So if you are 137 different on different hardware with this. So if you are
138 writing a game/application with AntiAlias switched on, it would 138 writing a game/application with AntiAlias switched on, it would
139 be a good idea to make it possible to switch this option off 139 be a good idea to make it possible to switch this option off
140 again by the user. 140 again by the user.
141 The value is the maximal antialiasing factor requested for 141 The value is the maximal antialiasing factor requested for
142 the device. The cretion method will automatically try smaller 142 the device. The cretion method will automatically try smaller
143 values if no window can be created with the given value. 143 values if no window can be created with the given value.
144 Value one is usually the same as 0 (disabled), but might be a 144 Value one is usually the same as 0 (disabled), but might be a
145 special value on some platforms. On D3D devices it maps to 145 special value on some platforms. On D3D devices it maps to
146 NONMASKABLE. 146 NONMASKABLE.
147 Default value: 0 - disabled */ 147 Default value: 0 - disabled */
148 u8 AntiAlias; 148 u8 AntiAlias;
149 149
150 //! Flag to enable proper sRGB and linear color handling 150 //! Flag to enable proper sRGB and linear color handling
151 /** In most situations, it is desireable to have the color handling in 151 /** In most situations, it is desireable to have the color handling in
152 non-linear sRGB color space, and only do the intermediate color 152 non-linear sRGB color space, and only do the intermediate color
153 calculations in linear RGB space. If this flag is enabled, the device and 153 calculations in linear RGB space. If this flag is enabled, the device and
154 driver try to assure that all color input and output are color corrected 154 driver try to assure that all color input and output are color corrected
155 and only the internal color representation is linear. This means, that 155 and only the internal color representation is linear. This means, that
156 the color output is properly gamma-adjusted to provide the brighter 156 the color output is properly gamma-adjusted to provide the brighter
157 colors for monitor display. And that blending and lighting give a more 157 colors for monitor display. And that blending and lighting give a more
158 natural look, due to proper conversion from non-linear colors into linear 158 natural look, due to proper conversion from non-linear colors into linear
159 color space for blend operations. If this flag is enabled, all texture colors 159 color space for blend operations. If this flag is enabled, all texture colors
160 (which are usually in sRGB space) are correctly displayed. However vertex colors 160 (which are usually in sRGB space) are correctly displayed. However vertex colors
161 and other explicitly set values have to be manually encoded in linear color space. 161 and other explicitly set values have to be manually encoded in linear color space.
162 Default value: false. */ 162 Default value: false. */
163 bool HandleSRGB; 163 bool HandleSRGB;
164 164
165 //! Whether the main framebuffer uses an alpha channel. 165 //! Whether the main framebuffer uses an alpha channel.
166 /** In some situations it might be desireable to get a color 166 /** In some situations it might be desireable to get a color
167 buffer with an alpha channel, e.g. when rendering into a 167 buffer with an alpha channel, e.g. when rendering into a
168 transparent window or overlay. If this flag is set the device 168 transparent window or overlay. If this flag is set the device
169 tries to create a framebuffer with alpha channel. 169 tries to create a framebuffer with alpha channel.
170 If this flag is set, only color buffers with alpha channel 170 If this flag is set, only color buffers with alpha channel
171 are considered. Otherwise, it depends on the actual hardware 171 are considered. Otherwise, it depends on the actual hardware
172 if the colorbuffer has an alpha channel or not. 172 if the colorbuffer has an alpha channel or not.
173 Default value: false */ 173 Default value: false */
174 bool WithAlphaChannel; 174 bool WithAlphaChannel;
175 175
176 //! Whether the main framebuffer uses doublebuffering. 176 //! Whether the main framebuffer uses doublebuffering.
177 /** This should be usually enabled, in order to avoid render 177 /** This should be usually enabled, in order to avoid render
178 artifacts on the visible framebuffer. However, it might be 178 artifacts on the visible framebuffer. However, it might be
179 useful to use only one buffer on very small devices. If no 179 useful to use only one buffer on very small devices. If no
180 doublebuffering is available, the drivers will fall back to 180 doublebuffering is available, the drivers will fall back to
181 single buffers. Default value: true */ 181 single buffers. Default value: true */
182 bool Doublebuffer; 182 bool Doublebuffer;
183 183
184 //! Specifies if the device should ignore input events 184 //! Specifies if the device should ignore input events
185 /** This is only relevant when using external I/O handlers. 185 /** This is only relevant when using external I/O handlers.
186 External windows need to take care of this themselves. 186 External windows need to take care of this themselves.
187 Currently only supported by X11. 187 Currently only supported by X11.
188 Default value: false */ 188 Default value: false */
189 bool IgnoreInput; 189 bool IgnoreInput;
190 190
191 //! Specifies if the device should use stereo buffers 191 //! Specifies if the device should use stereo buffers
192 /** Some high-end gfx cards support two framebuffers for direct 192 /** Some high-end gfx cards support two framebuffers for direct
193 support of stereoscopic output devices. If this flag is set the 193 support of stereoscopic output devices. If this flag is set the
194 device tries to create a stereo context. 194 device tries to create a stereo context.
195 Currently only supported by OpenGL. 195 Currently only supported by OpenGL.
196 Default value: false */ 196 Default value: false */
197 bool Stereobuffer; 197 bool Stereobuffer;
198 198
199 //! Specifies if the device should use high precision FPU setting 199 //! Specifies if the device should use high precision FPU setting
200 /** This is only relevant for DirectX Devices, which switch to 200 /** This is only relevant for DirectX Devices, which switch to
201 low FPU precision by default for performance reasons. However, 201 low FPU precision by default for performance reasons. However,
202 this may lead to problems with the other computations of the 202 this may lead to problems with the other computations of the
203 application. In this case setting this flag to true should help 203 application. In this case setting this flag to true should help
204 - on the expense of performance loss, though. 204 - on the expense of performance loss, though.
205 Default value: false */ 205 Default value: false */
206 bool HighPrecisionFPU; 206 bool HighPrecisionFPU;
207 207
208 //! A user created event receiver. 208 //! A user created event receiver.
209 IEventReceiver* EventReceiver; 209 IEventReceiver* EventReceiver;
210 210
211 //! Window Id. 211 //! Window Id.
212 /** If this is set to a value other than 0, the Irrlicht Engine 212 /** If this is set to a value other than 0, the Irrlicht Engine
213 will be created in an already existing window. For windows, set 213 will be created in an already existing window. For windows, set
214 this to the HWND of the window you want. The windowSize and 214 this to the HWND of the window you want. The windowSize and
215 FullScreen options will be ignored when using the WindowId 215 FullScreen options will be ignored when using the WindowId
216 parameter. Default this is set to 0. 216 parameter. Default this is set to 0.
217 To make Irrlicht run inside the custom window, you still will 217 To make Irrlicht run inside the custom window, you still will
218 have to draw Irrlicht on your own. You can use this loop, as 218 have to draw Irrlicht on your own. You can use this loop, as
219 usual: 219 usual:
220 \code 220 \code
221 while (device->run()) 221 while (device->run())
222 { 222 {
223 driver->beginScene(true, true, 0); 223 driver->beginScene(true, true, 0);
224 smgr->drawAll(); 224 smgr->drawAll();
225 driver->endScene(); 225 driver->endScene();
226 } 226 }
227 \endcode 227 \endcode
228 Instead of this, you can also simply use your own message loop 228 Instead of this, you can also simply use your own message loop
229 using GetMessage, DispatchMessage and whatever. Calling 229 using GetMessage, DispatchMessage and whatever. Calling
230 IrrlichtDevice::run() will cause Irrlicht to dispatch messages 230 IrrlichtDevice::run() will cause Irrlicht to dispatch messages
231 internally too. You need not call Device->run() if you want to 231 internally too. You need not call Device->run() if you want to
232 do your own message dispatching loop, but Irrlicht will not be 232 do your own message dispatching loop, but Irrlicht will not be
233 able to fetch user input then and you have to do it on your own 233 able to fetch user input then and you have to do it on your own
234 using the window messages, DirectInput, or whatever. Also, 234 using the window messages, DirectInput, or whatever. Also,
235 you'll have to increment the Irrlicht timer. 235 you'll have to increment the Irrlicht timer.
236 An alternative, own message dispatching loop without 236 An alternative, own message dispatching loop without
237 device->run() would look like this: 237 device->run() would look like this:
238 \code 238 \code
239 MSG msg; 239 MSG msg;
240 while (true) 240 while (true)
241 { 241 {
242 if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) 242 if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
243 { 243 {
244 TranslateMessage(&msg); 244 TranslateMessage(&msg);
245 DispatchMessage(&msg); 245 DispatchMessage(&msg);
246 246
247 if (msg.message == WM_QUIT) 247 if (msg.message == WM_QUIT)
248 break; 248 break;
249 } 249 }
250 250
251 // increase virtual timer time 251 // increase virtual timer time
252 device->getTimer()->tick(); 252 device->getTimer()->tick();
253 253
254 // draw engine picture 254 // draw engine picture
255 driver->beginScene(true, true, 0); 255 driver->beginScene(true, true, 0);
256 smgr->drawAll(); 256 smgr->drawAll();
257 driver->endScene(); 257 driver->endScene();
258 } 258 }
259 \endcode 259 \endcode
260 However, there is no need to draw the picture this often. Just 260 However, there is no need to draw the picture this often. Just
261 do it how you like. */ 261 do it how you like. */
262 void* WindowId; 262 void* WindowId;
263 263
264 video::SExposedVideoData *VideoData; 264 video::SExposedVideoData *VideoData;
265 265
266 //! Specifies the logging level used in the logging interface. 266 //! Specifies the logging level used in the logging interface.
267 /** The default value is ELL_INFORMATION. You can access the ILogger interface 267 /** The default value is ELL_INFORMATION. You can access the ILogger interface
268 later on from the IrrlichtDevice with getLogger() and set another level. 268 later on from the IrrlichtDevice with getLogger() and set another level.
269 But if you need more or less logging information already from device creation, 269 But if you need more or less logging information already from device creation,
270 then you have to change it here. 270 then you have to change it here.
271 */ 271 */
272 ELOG_LEVEL LoggingLevel; 272 ELOG_LEVEL LoggingLevel;
273 273
274 //! Allows to select which graphic card is used for rendering when more than one card is in the system. 274 //! Allows to select which graphic card is used for rendering when more than one card is in the system.
275 /** So far only supported on D3D */ 275 /** So far only supported on D3D */
276 u32 DisplayAdapter; 276 u32 DisplayAdapter;
277 277
278 //! Create the driver multithreaded. 278 //! Create the driver multithreaded.
279 /** Default is false. Enabling this can slow down your application. 279 /** Default is false. Enabling this can slow down your application.
280 Note that this does _not_ make Irrlicht threadsafe, but only the underlying driver-API for the graphiccard. 280 Note that this does _not_ make Irrlicht threadsafe, but only the underlying driver-API for the graphiccard.
281 So far only supported on D3D. */ 281 So far only supported on D3D. */
282 bool DriverMultithreaded; 282 bool DriverMultithreaded;
283 283
284 //! Enables use of high performance timers on Windows platform. 284 //! Enables use of high performance timers on Windows platform.
285 /** When performance timers are not used, standard GetTickCount() 285 /** When performance timers are not used, standard GetTickCount()
286 is used instead which usually has worse resolution, but also less 286 is used instead which usually has worse resolution, but also less
287 problems with speed stepping and other techniques. 287 problems with speed stepping and other techniques.
288 */ 288 */
289 bool UsePerformanceTimer; 289 bool UsePerformanceTimer;
290 290
291 //! Don't use or change this parameter. 291 //! Don't use or change this parameter.
292 /** Always set it to IRRLICHT_SDK_VERSION, which is done by default. 292 /** Always set it to IRRLICHT_SDK_VERSION, which is done by default.
293 This is needed for sdk version checks. */ 293 This is needed for sdk version checks. */
294 const c8* const SDK_version_do_not_use; 294 const c8* const SDK_version_do_not_use;
295 }; 295 };
296 296
297 297
298} // end namespace irr 298} // end namespace irr
299 299
300#endif 300#endif
301 301