5#ifndef __I_IRRLICHT_DEVICE_H_INCLUDED__
6#define __I_IRRLICHT_DEVICE_H_INCLUDED__
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"
17#include "IOSOperator.h"
30 class IGUIEnvironment;
72 virtual bool run() = 0;
84 virtual void sleep(
u32 timeMs,
bool pauseTimer=
false) = 0;
261 f32 relativebrightness,
f32 relativecontrast) =0;
265 f32 &brightness,
f32 &contrast) =0;
309#ifdef _IRR_COMPILE_WITH_DIRECT3D_11_
315#ifdef _IRR_COMPILE_WITH_OPENGL_
320 case video::EDT_OPENGLES:
321#ifdef _IRR_COMPILE_WITH_OGLES3_
Interface of an object which can receive events.
Definition IEventReceiver.h:474
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
IReferenceCounted()
Constructor.
Definition IReferenceCounted.h:50
Interface for getting and manipulating the virtual time.
Definition ITimer.h:15
The Irrlicht device. You can create it with createDevice() or createDeviceEx().
Definition IrrlichtDevice.h:44
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
Resize the render window.
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 u32 getDoubleClickTime() const =0
Get the maximal elapsed time between 2 clicks to generate double- and tripleclicks for the mouse.
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.
Definition IrrlichtDevice.h:302
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 core::position2di getWindowPosition()=0
Get the position of the frame on-screen.
virtual void setDoubleClickTime(u32 timeMs)=0
Set the maximal elapsed time between 2 clicks to generate doubleclicks for the mouse....
virtual void onWindowResize(u32 w, u32 h)=0
Add event resize - fix for SDL2 Emscripten.
virtual ITimer * getTimer()=0
Provides access to the engine's timer.
virtual bool isWindowFocused() const =0
Checks if the Irrlicht window has 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.
Self reallocating template array (like stl vector) with additional features.
Definition irrArray.h:23
Interface to manipulate the mouse cursor.
Definition ICursorControl.h:98
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.
Definition ISceneManager.h:135
Interface to driver which is able to perform 2d and 3d graphics functions.
Definition IVideoDriver.h:388
A list of all available video modes.
Definition IVideoModeList.h:24
vector2d< s32 > position2di
Definition position2d.h:24
The gui namespace contains useful classes for easy creation of a graphical user interface.
Definition ICursorControl.h:15
This namespace provides interfaces for input/output: Reading and writing files, accessing zip archive...
Definition EAttributes.h:11
All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees a...
Definition CIndexBuffer.h:13
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.
Definition EDriverTypes.h:15
@ EDT_OPENGL
OpenGL device, available on most platforms.
Definition EDriverTypes.h:24
@ EDT_DIRECT3D11
Direct3D 11 device, only available on Win32 platforms from vista and higher.
Definition EDriverTypes.h:31
@ EDT_NULL
Null driver, useful for applications to run the engine without visualisation.
Definition EDriverTypes.h:19
Everything in the Irrlicht Engine can be found in this namespace.
Definition Skylicht.h:33
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.
Definition EDeviceTypes.h:13
SEvents hold information about an event. See irr::IEventReceiver for details on event handling.
Definition IEventReceiver.h:273