IrrlichtEngine
IrrlichtDevice.h
Go to the documentation of this file.
00001 // Copyright (C) 2002-2011 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_IRRLICHT_DEVICE_H_INCLUDED__
00006 #define __I_IRRLICHT_DEVICE_H_INCLUDED__
00007 
00008 #include "IReferenceCounted.h"
00009 #include "dimension2d.h"
00010 #include "IVideoDriver.h"
00011 #include "EDriverTypes.h"
00012 #include "EDeviceTypes.h"
00013 #include "IEventReceiver.h"
00014 #include "ICursorControl.h"
00015 #include "IVideoModeList.h"
00016 #include "ITimer.h"
00017 #include "IOSOperator.h"
00018 
00019 namespace irr
00020 {
00021         class ILogger;
00022         class IEventReceiver;
00023         class IRandomizer;
00024 
00025         namespace io {
00026                 class IFileSystem;
00027         } // end namespace io
00028 
00029         namespace gui {
00030                 class IGUIEnvironment;
00031         } // end namespace gui
00032 
00033         namespace scene {
00034                 class ISceneManager;
00035         } // end namespace scene
00036 
00038 
00043         class IrrlichtDevice : public virtual IReferenceCounted
00044         {
00045         public:
00046 
00048 
00072                 virtual bool run() = 0;
00073 
00075 
00077                 virtual void yield() = 0;
00078 
00080 
00084                 virtual void sleep(u32 timeMs, bool pauseTimer=false) = 0;
00085 
00087 
00088                 virtual video::IVideoDriver* getVideoDriver() = 0;
00089 
00091 
00092                 virtual io::IFileSystem* getFileSystem() = 0;
00093 
00095 
00096                 virtual gui::IGUIEnvironment* getGUIEnvironment() = 0;
00097 
00099 
00100                 virtual scene::ISceneManager* getSceneManager() = 0;
00101 
00103 
00104                 virtual gui::ICursorControl* getCursorControl() = 0;
00105 
00107 
00108                 virtual ILogger* getLogger() = 0;
00109 
00111 
00119                 virtual video::IVideoModeList* getVideoModeList() = 0;
00120 
00122 
00127                 virtual IOSOperator* getOSOperator() = 0;
00128 
00130 
00133                 virtual ITimer* getTimer() = 0;
00134 
00136 
00137                 virtual IRandomizer* getRandomizer() const =0;
00138 
00140 
00143                 virtual void setRandomizer(IRandomizer* r) =0;
00144 
00146 
00149                 virtual IRandomizer* createDefaultRandomizer() const =0;
00150 
00152 
00153                 virtual void setWindowCaption(const wchar_t* text) = 0;
00154 
00156 
00171                 virtual bool isWindowActive() const = 0;
00172 
00174 
00175                 virtual bool isWindowFocused() const = 0;
00176 
00178 
00179                 virtual bool isWindowMinimized() const = 0;
00180 
00182 
00183                 virtual bool isFullscreen() const = 0;
00184 
00186 
00187                 virtual video::ECOLOR_FORMAT getColorFormat() const = 0;
00188 
00190 
00191                 virtual void closeDevice() = 0;
00192 
00194 
00197                 virtual const c8* getVersion() const = 0;
00198 
00200 
00204                 virtual void setEventReceiver(IEventReceiver* receiver) = 0;
00205 
00207 
00208                 virtual IEventReceiver* getEventReceiver() = 0;
00209 
00211 
00216                 virtual bool postEventFromUser(const SEvent& event) = 0;
00217 
00219 
00222                 virtual void setInputReceivingSceneManager(scene::ISceneManager* sceneManager) = 0;
00223 
00225 
00228                 virtual void setResizable(bool resize=false) = 0;
00229 
00231                 virtual void minimizeWindow() =0;
00232 
00234                 virtual void maximizeWindow() =0;
00235 
00237                 virtual void restoreWindow() =0;
00238 
00240 
00247                 virtual bool activateJoysticks(core::array<SJoystickInfo>& joystickInfo) =0;
00248 
00250                 virtual bool setGammaRamp(f32 red, f32 green, f32 blue,
00251                                         f32 relativebrightness, f32 relativecontrast) =0;
00252 
00254                 virtual bool getGammaRamp(f32 &red, f32 &green, f32 &blue,
00255                                         f32 &brightness, f32 &contrast) =0;
00256 
00258 
00267                 virtual void clearSystemMessages() = 0;
00268 
00270 
00272                 virtual E_DEVICE_TYPE getType() const = 0;
00273 
00275 
00277                 static bool isDriverSupported(video::E_DRIVER_TYPE driver)
00278                 {
00279                         switch (driver)
00280                         {
00281                                 case video::EDT_NULL:
00282                                         return true;
00283                                 case video::EDT_SOFTWARE:
00284 #ifdef _IRR_COMPILE_WITH_SOFTWARE_
00285                                         return true;
00286 #else
00287                                         return false;
00288 #endif
00289                                 case video::EDT_BURNINGSVIDEO:
00290 #ifdef _IRR_COMPILE_WITH_BURNINGSVIDEO_
00291                                         return true;
00292 #else
00293                                         return false;
00294 #endif
00295                                 case video::EDT_DIRECT3D8:
00296 #ifdef _IRR_COMPILE_WITH_DIRECT3D_8_
00297                                         return true;
00298 #else
00299                                         return false;
00300 #endif
00301                                 case video::EDT_DIRECT3D9:
00302 #ifdef _IRR_COMPILE_WITH_DIRECT3D_9_
00303                                         return true;
00304 #else
00305                                         return false;
00306 #endif
00307                                 case video::EDT_OPENGL:
00308 #ifdef _IRR_COMPILE_WITH_OPENGL_
00309                                         return true;
00310 #else
00311                                         return false;
00312 #endif
00313                                 default:
00314                                         return false;
00315                         }
00316                 }
00317         };
00318 
00319 } // end namespace irr
00320 
00321 #endif
00322