Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

IrrlichtDevice.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2010 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 
00024         namespace io {
00025                 class IFileSystem;
00026         } // end namespace io
00027 
00028         namespace gui {
00029                 class IGUIEnvironment;
00030         } // end namespace gui
00031 
00032         namespace scene {
00033                 class ISceneManager;
00034         } // end namespace scene
00035 
00037 
00042         class IrrlichtDevice : public virtual IReferenceCounted
00043         {
00044         public:
00045 
00047 
00071                 virtual bool run() = 0;
00072 
00074 
00076                 virtual void yield() = 0;
00077 
00079 
00083                 virtual void sleep(u32 timeMs, bool pauseTimer=false) = 0;
00084 
00086 
00087                 virtual video::IVideoDriver* getVideoDriver() = 0;
00088 
00090 
00091                 virtual io::IFileSystem* getFileSystem() = 0;
00092 
00094 
00095                 virtual gui::IGUIEnvironment* getGUIEnvironment() = 0;
00096 
00098 
00099                 virtual scene::ISceneManager* getSceneManager() = 0;
00100 
00102 
00103                 virtual gui::ICursorControl* getCursorControl() = 0;
00104 
00106 
00107                 virtual ILogger* getLogger() = 0;
00108 
00110 
00118                 virtual video::IVideoModeList* getVideoModeList() = 0;
00119 
00121 
00126                 virtual IOSOperator* getOSOperator() = 0;
00127 
00129 
00132                 virtual ITimer* getTimer() = 0;
00133 
00135 
00136                 virtual void setWindowCaption(const wchar_t* text) = 0;
00137 
00139 
00154                 virtual bool isWindowActive() const = 0;
00155 
00157 
00158                 virtual bool isWindowFocused() const = 0;
00159 
00161 
00162                 virtual bool isWindowMinimized() const = 0;
00163 
00165 
00166                 virtual bool isFullscreen() const = 0;
00167 
00169 
00170                 virtual video::ECOLOR_FORMAT getColorFormat() const = 0;
00171 
00173 
00174                 virtual void closeDevice() = 0;
00175 
00177 
00180                 virtual const c8* getVersion() const = 0;
00181 
00183 
00187                 virtual void setEventReceiver(IEventReceiver* receiver) = 0;
00188 
00190 
00191                 virtual IEventReceiver* getEventReceiver() = 0;
00192 
00194 
00199                 virtual bool postEventFromUser(const SEvent& event) = 0;
00200 
00202 
00205                 virtual void setInputReceivingSceneManager(scene::ISceneManager* sceneManager) = 0;
00206 
00208 
00211                 virtual void setResizable(bool resize=false) = 0;
00212 
00214                 virtual void minimizeWindow() =0;
00215 
00217                 virtual void maximizeWindow() =0;
00218 
00220                 virtual void restoreWindow() =0;
00221 
00223 
00230                 virtual bool activateJoysticks(core::array<SJoystickInfo>& joystickInfo) =0;
00231 
00233                 virtual bool setGammaRamp(f32 red, f32 green, f32 blue,
00234                                         f32 relativebrightness, f32 relativecontrast) =0;
00235 
00237                 virtual bool getGammaRamp(f32 &red, f32 &green, f32 &blue,
00238                                         f32 &brightness, f32 &contrast) =0;
00239 
00241 
00250                 virtual void clearSystemMessages() = 0;
00251 
00253 
00255                 virtual E_DEVICE_TYPE getType() const = 0;
00256 
00258 
00260                 static bool isDriverSupported(video::E_DRIVER_TYPE driver)
00261                 {
00262                         switch (driver)
00263                         {
00264                                 case video::EDT_NULL:
00265                                         return true;
00266                                 case video::EDT_SOFTWARE:
00267 #ifdef _IRR_COMPILE_WITH_SOFTWARE_
00268                                         return true;
00269 #else
00270                                         return false;
00271 #endif
00272                                 case video::EDT_BURNINGSVIDEO:
00273 #ifdef _IRR_COMPILE_WITH_BURNINGSVIDEO_
00274                                         return true;
00275 #else
00276                                         return false;
00277 #endif
00278                                 case video::EDT_DIRECT3D8:
00279 #ifdef _IRR_COMPILE_WITH_DIRECT3D_8_
00280                                         return true;
00281 #else
00282                                         return false;
00283 #endif
00284                                 case video::EDT_DIRECT3D9:
00285 #ifdef _IRR_COMPILE_WITH_DIRECT3D_9_
00286                                         return true;
00287 #else
00288                                         return false;
00289 #endif
00290                                 case video::EDT_OPENGL:
00291 #ifdef _IRR_COMPILE_WITH_OPENGL_
00292                                         return true;
00293 #else
00294                                         return false;
00295 #endif
00296                                 default:
00297                                         return false;
00298                         }
00299                 }
00300         };
00301 
00302 } // end namespace irr
00303 
00304 #endif
00305 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:41:57 2010 by Doxygen (1.6.2)