OpenTTD Source: VideoDriver_Null Class Reference

OpenTTD Source 15.0-RC2

Public Member Functions | Private Attributes
VideoDriver_Null Class Reference

The null video driver. More...

`#include <null_v.h>`

Inheritance diagram for VideoDriver_Null:

## Public Member Functions
std::optional< std::string_view > | Start (const StringList &param) override
| Start this driver.
void | Stop () override
| Stop this driver.
void | MakeDirty (int left, int top, int width, int height) override
| Mark a particular area dirty.
void | MainLoop () override
| Perform the actual drawing.
bool | ChangeResolution (int w, int h) override
| Change the resolution of the window.
bool | ToggleFullscreen (bool fullscreen) override
| Change the full screen setting.
std::string_view | GetName () const override
| Get the name of this driver.
bool | HasGUI () const override
| Whether the driver has a graphical user interface with the end user.
Public Member Functions inherited from VideoDriver
| VideoDriver (bool uses_hardware_acceleration=false)
virtual void | ToggleVsync (bool vsync)
| Change the vsync setting.
virtual bool | AfterBlitterChange ()
| Callback invoked after the blitter was changed.
virtual bool | ClaimMousePointer ()
virtual bool | UseSystemCursor ()
| Get whether the mouse cursor is drawn by the video driver.
virtual void | PopulateSystemSprites ()
| Populate all sprites in cache.
virtual void | ClearSystemSprites ()
| Clear all cached sprites.
virtual bool | HasEfficient8Bpp () const
| Has this video driver an efficient code path for palette animated 8-bpp sprites?
virtual bool | HasAnimBuffer ()
| Does this video driver support a separate animation buffer in addition to the colour buffer?
virtual uint8_t * | GetAnimBuffer ()
| Get a pointer to the animation buffer of the video back-end.
virtual void | EditBoxLostFocus ()
| An edit box lost the input focus.
virtual void | EditBoxGainedFocus ()
| An edit box gained the input focus.
virtual std::vector< int > | GetListOfMonitorRefreshRates ()
| Get a list of refresh rates of each available monitor.
virtual std::string_view | GetInfoString () const
void | QueueOnMainThread (std::function< void()> &&func)
| Queue a function to be called on the main thread with game state lock held and video buffer locked.
void | GameLoopPause ()
| Pause the game-loop for a bit, releasing the game-state lock.

## Private Attributes
uint | ticks = 0
| Amount of ticks to run.

## Additional Inherited Members
Public Types inherited from Driver
enum | Type : uint8_t { DT_BEGIN = 0 , DT_MUSIC = 0 , DT_SOUND , DT_VIDEO , DT_END }
| The type of driver. More...
Static Public Member Functions inherited from VideoDriver
static VideoDriver * | GetInstance ()
| Get the currently active instance of the video driver.
static std::string | GetCaption ()
| Get the caption to use for the game's title bar.
Protected Member Functions inherited from VideoDriver
virtual Dimension | GetScreenSize () const
| Get the resolution of the main screen.
void | UpdateAutoResolution ()
| Apply resolution auto-detection and clamp to sensible defaults.
virtual void | InputLoop ()
| Handle input logic, is CTRL pressed, should we fast-forward, etc.
virtual bool | LockVideoBuffer ()
| Make sure the video buffer is ready for drawing.
virtual void | UnlockVideoBuffer ()
| Unlock a previously locked video buffer.
virtual void | Paint ()
| Paint the window.
virtual void | CheckPaletteAnim ()
| Process any pending palette animation.
virtual bool | PollEvent ()
| Process a single system event.
void | StartGameThread ()
| Start the loop for game-tick.
void | StopGameThread ()
| Stop the loop for the game-tick.
void | Tick ()
| Give the video-driver a tick.
void | SleepTillNextTick ()
| Sleep till the next tick is about to happen.
std::chrono::steady_clock::duration | GetGameInterval ()
std::chrono::steady_clock::duration | GetDrawInterval ()
void | DrainCommandQueue ()
| Execute all queued commands.
Static Protected Member Functions inherited from VideoDriver
static void | GameThreadThunk (VideoDriver *drv)
Protected Attributes inherited from VideoDriver
const uint | ALLOWED_DRIFT = 5
| How many times videodriver can miss deadlines without it being overly compensated.
std::chrono::steady_clock::time_point | next_game_tick
std::chrono::steady_clock::time_point | next_draw_tick
bool | fast_forward_key_pressed
| The fast-forward key is being pressed.
bool | fast_forward_via_key
| The fast-forward was enabled by key press.
bool | is_game_threaded
std::thread | game_thread
std::mutex | game_state_mutex
std::mutex | game_thread_wait_mutex
bool | uses_hardware_acceleration

## Detailed Description

The null video driver.

Definition at line 16 of file null_v.h.

## Member Function Documentation

## ◆ ChangeResolution()

bool VideoDriver_Null::ChangeResolution | ( | int | w,
|  | int | h
| ) |  |
| overridevirtual

Change the resolution of the window.

Parameters

  w | The new width.
  h | The new height.

Returns
  True if the change succeeded.

Implements VideoDriver.

Definition at line 66 of file null_v.cpp.

## ◆ GetName()

std::string_view VideoDriver_Null::GetName | ( |  | ) | const
| inlineoverridevirtual

Get the name of this driver.

Returns
  The name of the driver.

Implements Driver.

Definition at line 32 of file null_v.h.

## ◆ HasGUI()

bool VideoDriver_Null::HasGUI | ( |  | ) | const
| inlineoverridevirtual

Whether the driver has a graphical user interface with the end user.

Or in other words, whether we should spawn a thread for world generation and NewGRF scanning so the graphical updates can keep coming. Otherwise progress has to be shown on the console, which uses by definition another thread/process for display purposes.

Returns
  True for all drivers except null and dedicated.

Reimplemented from VideoDriver.

Definition at line 33 of file null_v.h.

## ◆ MainLoop()

void VideoDriver_Null::MainLoop | ( |  | ) |
| overridevirtual

Perform the actual drawing.

Implements VideoDriver.

Definition at line 49 of file null_v.cpp.

References _settings_client, GUISettings::autosave_on_exit, DoExitSave(), ClientSettings::gui, VideoDriver::InputLoop(), ticks, and UpdateWindows().

## ◆ MakeDirty()

void VideoDriver_Null::MakeDirty | ( | int | left,
|  | int | top,
|  | int | width,
|  | int | height
| ) |  |
| overridevirtual

Mark a particular area dirty.

Parameters

  left | The left most line of the dirty area.
  top | The top most line of the dirty area.
  width | The width of the dirty area.
  height | The height of the dirty area.

Implements VideoDriver.

Definition at line 47 of file null_v.cpp.

## ◆ Start()

std::optional< std::string_view > VideoDriver_Null::Start | ( | const StringList & | parm | ) |
| overridevirtual

Start this driver.

Parameters

  parm | Parameters passed to the driver.

Returns
  std::nullopt if everything went okay, otherwise an error message.

Implements Driver.

Definition at line 22 of file null_v.cpp.

References _cur_resolution, Debug, GetDriverParamInt(), BlitterFactory::SelectBlitter(), ticks, and VideoDriver::UpdateAutoResolution().

## ◆ Stop()

void VideoDriver_Null::Stop | ( |  | ) |
| overridevirtual

Stop this driver.

Implements Driver.

Definition at line 45 of file null_v.cpp.

## ◆ ToggleFullscreen()

bool VideoDriver_Null::ToggleFullscreen | ( | bool | fullscreen | ) |
| overridevirtual

Change the full screen setting.

Parameters

  fullscreen | The new setting.

Returns
  True if the change succeeded.

Implements VideoDriver.

Definition at line 68 of file null_v.cpp.

## Field Documentation

## ◆ ticks

uint VideoDriver_Null::ticks = 0
| private

Amount of ticks to run.

Definition at line 18 of file null_v.h.

Referenced by MainLoop(), and Start().

The documentation for this class was generated from the following files:

- src/video/null_v.h
- src/video/null_v.cpp