Irrlicht 3D Engine: IrrlichtDevice.h Source File

| Irrlicht 3D Engine |

IrrlichtDevice.h
Go to the documentation of this file.

    00001 // Copyright (C) 2002-2012 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