Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
IrrlichtDevice.h
Go to the documentation of this file.
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#ifndef __I_IRRLICHT_DEVICE_H_INCLUDED__
6#define __I_IRRLICHT_DEVICE_H_INCLUDED__
7
8#include "IReferenceCounted.h"
9#include "dimension2d.h"
10#include "IVideoDriver.h"
11#include "EDriverTypes.h"
12#include "EDeviceTypes.h"
13#include "IEventReceiver.h"
14#include "ICursorControl.h"
15#include "IVideoModeList.h"
16#include "ITimer.h"
17#include "IOSOperator.h"
18
19namespace irr
20{
21 class ILogger;
22 class IEventReceiver;
23 class IRandomizer;
24
25 namespace io {
26 class IFileSystem;
27 } // end namespace io
28
29 namespace gui {
30 class IGUIEnvironment;
31 } // end namespace gui
32
33 namespace scene {
34 class ISceneManager;
35 } // end namespace scene
36
38
43 class IrrlichtDevice : public virtual IReferenceCounted
44 {
45 public:
46
48
72 virtual bool run() = 0;
73
75
77 virtual void yield() = 0;
78
80
84 virtual void sleep(u32 timeMs, bool pauseTimer=false) = 0;
85
87
89
91
93
95
97
99
101
103
105
107
108 virtual ILogger* getLogger() = 0;
109
111
120
122
128
130
133 virtual ITimer* getTimer() = 0;
134
136
137 virtual IRandomizer* getRandomizer() const =0;
138
140
143 virtual void setRandomizer(IRandomizer* r) =0;
144
146
150
152
153 virtual void setWindowCaption(const wchar_t* text) = 0;
154
156
171 virtual bool isWindowActive() const = 0;
172
174
175 virtual bool isWindowFocused() const = 0;
176
178
179 virtual bool isWindowMinimized() const = 0;
180
182
183 virtual bool isFullscreen() const = 0;
184
186
188
190
191 virtual void closeDevice() = 0;
192
194
197 virtual const c8* getVersion() const = 0;
198
200
204 virtual void setEventReceiver(IEventReceiver* receiver) = 0;
205
207
209
211
216 virtual bool postEventFromUser(const SEvent& event) = 0;
217
219
223
225
228 virtual void setResizable(bool resize=false) = 0;
229
231 virtual void minimizeWindow() =0;
232
234 virtual void maximizeWindow() =0;
235
237 virtual void restoreWindow() =0;
238
240
247 virtual bool activateJoysticks(core::array<SJoystickInfo>& joystickInfo) =0;
248
250 virtual bool setGammaRamp(f32 red, f32 green, f32 blue,
251 f32 relativebrightness, f32 relativecontrast) =0;
252
254 virtual bool getGammaRamp(f32 &red, f32 &green, f32 &blue,
255 f32 &brightness, f32 &contrast) =0;
256
258
267 virtual void clearSystemMessages() = 0;
268
270
272 virtual E_DEVICE_TYPE getType() const = 0;
273
275
278 {
279 switch (driver)
280 {
281 case video::EDT_NULL:
282 return true;
284#ifdef _IRR_COMPILE_WITH_SOFTWARE_
285 return true;
286#else
287 return false;
288#endif
290#ifdef _IRR_COMPILE_WITH_BURNINGSVIDEO_
291 return true;
292#else
293 return false;
294#endif
296#ifdef _IRR_COMPILE_WITH_DIRECT3D_8_
297 return true;
298#else
299 return false;
300#endif
302#ifdef _IRR_COMPILE_WITH_DIRECT3D_9_
303 return true;
304#else
305 return false;
306#endif
308#ifdef _IRR_COMPILE_WITH_OPENGL_
309 return true;
310#else
311 return false;
312#endif
313 default:
314 return false;
315 }
316 }
317 };
318
319} // end namespace irr
320
321#endif
322
Interface of an object which can receive events.
Interface for logging messages, warnings and errors.
Definition ILogger.h:39
The Operating system operator provides operation system specific methods and informations.
Definition IOSOperator.h:16
Interface for generating random numbers.
Definition IRandomizer.h:15
Base class of most objects of the Irrlicht Engine.
Interface for getting and manipulating the virtual time.
Definition ITimer.h:15
The Irrlicht device. You can create it with createDevice() or createDeviceEx().
virtual bool run()=0
Runs the device.
virtual void closeDevice()=0
Notifies the device that it should close itself.
virtual IEventReceiver * getEventReceiver()=0
Provides access to the current event receiver.
virtual void setInputReceivingSceneManager(scene::ISceneManager *sceneManager)=0
Sets the input receiving scene manager.
virtual void minimizeWindow()=0
Minimizes the window if possible.
virtual void maximizeWindow()=0
Maximizes the window if possible.
virtual E_DEVICE_TYPE getType() const =0
Get the type of the device.
virtual ILogger * getLogger()=0
Provides access to the message logger.
virtual bool getGammaRamp(f32 &red, f32 &green, f32 &blue, f32 &brightness, f32 &contrast)=0
Get the current Gamma Value for the Display.
virtual IRandomizer * getRandomizer() const =0
Provides access to the engine's currently set randomizer.
virtual void setWindowCaption(const wchar_t *text)=0
Sets the caption of the window.
virtual gui::ICursorControl * getCursorControl()=0
Provides access to the cursor control.
virtual bool isFullscreen() const =0
Checks if the Irrlicht window is running in fullscreen mode.
virtual void setResizable(bool resize=false)=0
Sets if the window should be resizable in windowed mode.
virtual void restoreWindow()=0
Restore the window to normal size if possible.
static bool isDriverSupported(video::E_DRIVER_TYPE driver)
Check if a driver type is supported by the engine.
virtual bool isWindowMinimized() const =0
Checks if the Irrlicht window is minimized.
virtual void yield()=0
Cause the device to temporarily pause execution and let other processes run.
virtual scene::ISceneManager * getSceneManager()=0
Provides access to the scene manager.
virtual void sleep(u32 timeMs, bool pauseTimer=false)=0
Pause execution and let other processes to run for a specified amount of time.
virtual ITimer * getTimer()=0
Provides access to the engine's timer.
virtual bool isWindowFocused() const =0
Checks if the Irrlicht window has the input focus.
virtual video::ECOLOR_FORMAT getColorFormat() const =0
Get the current color format of the window.
virtual void clearSystemMessages()=0
Remove messages pending in the system message loop.
virtual bool setGammaRamp(f32 red, f32 green, f32 blue, f32 relativebrightness, f32 relativecontrast)=0
Set the current Gamma Value for the Display.
virtual IOSOperator * getOSOperator()=0
Provides access to the operation system operator object.
virtual IRandomizer * createDefaultRandomizer() const =0
Creates a new default randomizer.
virtual video::IVideoModeList * getVideoModeList()=0
Gets a list with all video modes available.
virtual bool isWindowActive() const =0
Returns if the window is active.
virtual void setEventReceiver(IEventReceiver *receiver)=0
Sets a new user event receiver which will receive events from the engine.
virtual bool postEventFromUser(const SEvent &event)=0
Sends a user created event to the engine.
virtual video::IVideoDriver * getVideoDriver()=0
Provides access to the video driver for drawing 3d and 2d geometry.
virtual gui::IGUIEnvironment * getGUIEnvironment()=0
Provides access to the 2d user interface environment.
virtual io::IFileSystem * getFileSystem()=0
Provides access to the virtual file system.
virtual bool activateJoysticks(core::array< SJoystickInfo > &joystickInfo)=0
Activate any joysticks, and generate events for them.
virtual const c8 * getVersion() const =0
Get the version of the engine.
virtual void setRandomizer(IRandomizer *r)=0
Sets a new randomizer.
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.h:22
Interface to manipulate the mouse cursor.
GUI Environment. Used as factory and manager of all other GUI elements.
The FileSystem manages files and archives and provides access to them.
Definition IFileSystem.h:33
The Scene Manager manages scene nodes, mesh recources, cameras and all the other stuff.
Interface to driver which is able to perform 2d and 3d graphics functions.
A list of all available video modes.
ECOLOR_FORMAT
An enum for the color format of textures used by the Irrlicht Engine.
Definition SColor.h:18
E_DRIVER_TYPE
An enum for all types of drivers the Irrlicht Engine supports.
@ EDT_SOFTWARE
The Irrlicht Engine Software renderer.
@ EDT_OPENGL
OpenGL device, available on most platforms.
@ EDT_DIRECT3D9
Direct3D 9 device, only available on Win32 platforms.
@ EDT_DIRECT3D8
Direct3D8 device, only available on Win32 platforms.
@ EDT_NULL
Null driver, useful for applications to run the engine without visualisation.
@ EDT_BURNINGSVIDEO
The Burning's Software Renderer, an alternative software renderer.
Everything in the Irrlicht Engine can be found in this namespace.
Definition aabbox3d.h:13
float f32
32 bit floating point variable.
Definition irrTypes.h:104
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
char c8
8 bit character variable.
Definition irrTypes.h:31
E_DEVICE_TYPE
An enum for the different device types supported by the Irrlicht Engine.
SEvents hold information about an event. See irr::IEventReceiver for details on event handling.