|
OpenTTD Source 20251104-master-g3befbdd52f
|
Base for all driver factories. More...
#include <driver.h>
Public Member Functions | |
| std::string_view | GetDescription () const |
| Get a nice description of the driver-class. | |
| virtual std::unique_ptr< Driver > | CreateInstance () const =0 |
| Create an instance of this driver-class. | |
Static Public Member Functions | |
| static void | ShutdownDrivers () |
| Shuts down all active drivers. | |
| static void | SelectDriver (const std::string &name, Driver::Type type) |
| Find the requested driver and return its class. | |
| static void | GetDriversInfo (std::back_insert_iterator< std::string > &output_iterator) |
| Build a human readable list of available drivers, grouped by type. | |
Protected Member Functions | |
| DriverFactoryBase (Driver::Type type, int priority, std::string_view name, std::string_view description) | |
| Construct a new DriverFactory. | |
| virtual | ~DriverFactoryBase () |
| Frees memory used for this->name. | |
| virtual bool | UsesHardwareAcceleration () const |
| Does the driver use hardware acceleration (video-drivers only). | |
Private Types | |
| typedef std::map< std::string, DriverFactoryBase * > | Drivers |
| Type for a map of drivers. | |
Static Private Member Functions | |
| static Drivers & | GetDrivers () |
| Get the map with drivers. | |
| static std::unique_ptr< Driver > & | GetActiveDriver (Driver::Type type) |
| Get the active driver for the given type. | |
| static std::string_view | GetDriverTypeName (Driver::Type type) |
| Get the driver type name. | |
| static bool | SelectDriverImpl (const std::string &name, Driver::Type type) |
| Find the requested driver and return its class. | |
| static void | MarkVideoDriverOperational () |
| Mark the current video driver as operational. | |
Private Attributes | |
| Driver::Type | type |
| The type of driver. | |
| int | priority |
| The priority of this factory. | |
| std::string_view | name |
| The name of the drivers of this factory. | |
| std::string_view | description |
| The description of this driver. | |
Friends | |
| class | MusicDriver |
| class | SoundDriver |
| class | VideoDriver |
|
private |
|
protected |
Construct a new DriverFactory.
| type | The type of driver. |
| priority | The priority within the driver class. |
| name | The name of the driver. |
| description | A long-ish description of the driver. |
Definition at line 246 of file driver.cpp.
References GetDrivers(), GetDriverTypeName(), name, and type.
|
protectedvirtual |
Frees memory used for this->name.
Definition at line 260 of file driver.cpp.
References GetDrivers(), GetDriverTypeName(), name, and type.
|
pure virtual |
Create an instance of this driver-class.
Implemented in FMusicDriver_Allegro, FMusicDriver_BeMidi, FMusicDriver_Cocoa, FMusicDriver_DMusic, FMusicDriver_ExtMidi, FMusicDriver_FluidSynth, FMusicDriver_Null, FMusicDriver_Win32, FSoundDriver_Allegro, FSoundDriver_Cocoa, FSoundDriver_Null, FSoundDriver_SDL, FSoundDriver_Win32, FSoundDriver_XAudio2, FVideoDriver_Allegro, FVideoDriver_CocoaOpenGL, FVideoDriver_CocoaQuartz, FVideoDriver_Dedicated, FVideoDriver_Null, FVideoDriver_SDL_Default, FVideoDriver_SDL_OpenGL, and FVideoDriver_Win32GDI.
Referenced by SelectDriverImpl().
|
inlinestaticprivate |
Get the active driver for the given type.
| type | The type to get the driver for. |
Definition at line 84 of file driver.h.
References Driver::DT_END.
Referenced by MusicDriver::GetInstance(), SoundDriver::GetInstance(), VideoDriver::GetInstance(), and SelectDriverImpl().
|
inline |
Get a nice description of the driver-class.
Definition at line 138 of file driver.h.
Referenced by GetDriversInfo().
|
inlinestaticprivate |
Get the map with drivers.
Definition at line 73 of file driver.h.
Referenced by DriverFactoryBase(), GetDriversInfo(), SelectDriverImpl(), and ~DriverFactoryBase().
|
static |
Build a human readable list of available drivers, grouped by type.
| output_iterator | The iterator to write the string to. |
Definition at line 221 of file driver.cpp.
References Driver::DT_BEGIN, Driver::DT_END, GetDescription(), GetDrivers(), GetDriverTypeName(), name, priority, and type.
Referenced by ShowHelp().
|
inlinestaticprivate |
Get the driver type name.
| type | The type of driver to get the name of. |
Definition at line 95 of file driver.h.
Referenced by DriverFactoryBase(), GetDriversInfo(), SelectDriver(), SelectDriverImpl(), and ~DriverFactoryBase().
|
staticprivate |
Mark the current video driver as operational.
Definition at line 208 of file driver.cpp.
References BASE_DIR, FioFindFullPath(), FioRemove(), and HWACCELERATION_TEST_FILE.
Referenced by VideoDriver::Tick().
|
static |
Find the requested driver and return its class.
| name | the driver to select. |
| type | the type of driver to select |
Definition at line 94 of file driver.cpp.
References GetDriverTypeName(), name, SelectDriverImpl(), and type.
Referenced by openttd_main().
|
staticprivate |
Find the requested driver and return its class.
| name | the driver to select. |
| type | the type of driver to select |
Definition at line 110 of file driver.cpp.
References _video_hw_accel, BASE_DIR, CreateInstance(), Debug, Driver::DT_VIDEO, FioFindFullPath(), FioFOpenFile(), FioRemove(), GetActiveDriver(), GetDrivers(), GetDriverTypeName(), GetEncodedString(), HWACCELERATION_TEST_FILE, name, priority, ScheduleErrorMessage(), StrEqualsIgnoreCase(), type, and UsesHardwareAcceleration().
Referenced by SelectDriver().
|
inlinestatic |
Shuts down all active drivers.
Definition at line 123 of file driver.h.
References Driver::DT_BEGIN, and Driver::DT_END.
Referenced by ShutdownGame().
|
inlineprotectedvirtual |
Does the driver use hardware acceleration (video-drivers only).
Reimplemented in FVideoDriver_CocoaOpenGL, and FVideoDriver_SDL_OpenGL.
Definition at line 114 of file driver.h.
Referenced by SelectDriverImpl().
|
friend |
|
friend |
|
friend |
|
private |
|
private |
The name of the drivers of this factory.
Definition at line 65 of file driver.h.
Referenced by DriverFactoryBase(), GetDriversInfo(), SelectDriver(), SelectDriverImpl(), and ~DriverFactoryBase().
|
private |
The priority of this factory.
Definition at line 64 of file driver.h.
Referenced by GetDriversInfo(), and SelectDriverImpl().
|
private |
The type of driver.
Definition at line 63 of file driver.h.
Referenced by DriverFactoryBase(), GetDriversInfo(), SelectDriver(), SelectDriverImpl(), and ~DriverFactoryBase().