OpenTTD Source  20241120-master-g6d3adc6169
VideoDriver_Null Class Reference

The null video driver. More...

#include <null_v.h>

Inheritance diagram for VideoDriver_Null:
VideoDriver Driver

Public Member Functions

std::optional< std::string_view > Start (const StringList &param) override
 Start this driver. More...
 
void Stop () override
 Stop this driver.
 
void MakeDirty (int left, int top, int width, int height) override
 Mark a particular area dirty. More...
 
void MainLoop () override
 Perform the actual drawing.
 
bool ChangeResolution (int w, int h) override
 Change the resolution of the window. More...
 
bool ToggleFullscreen (bool fullscreen) override
 Change the full screen setting. More...
 
std::string_view GetName () const override
 Get the name of this driver. More...
 
bool HasGUI () const override
 Whether the driver has a graphical user interface with the end user. More...
 
- Public Member Functions inherited from VideoDriver
 VideoDriver (bool uses_hardware_acceleration=false)
 
virtual void ToggleVsync ([[maybe_unused]] bool vsync)
 Change the vsync setting. More...
 
virtual bool AfterBlitterChange ()
 Callback invoked after the blitter was changed. More...
 
virtual bool ClaimMousePointer ()
 
virtual bool UseSystemCursor ()
 Get whether the mouse cursor is drawn by the video driver. More...
 
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? More...
 
virtual bool HasAnimBuffer ()
 Does this video driver support a separate animation buffer in addition to the colour buffer? More...
 
virtual uint8_t * GetAnimBuffer ()
 Get a pointer to the animation buffer of the video back-end. More...
 
virtual void EditBoxLostFocus ()
 An edit box lost the input focus. More...
 
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. More...
 
virtual int GetSuggestedUIScale ()
 Get a suggested default GUI scale taking screen DPI into account.
 
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. More...
 
void GameLoopPause ()
 Pause the game-loop for a bit, releasing the game-state lock. More...
 

Private Attributes

uint ticks
 Amount of ticks to run.
 

Additional Inherited Members

- Public Types inherited from Driver
enum  Type {
  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 VideoDriverGetInstance ()
 Get the currently active instance of the video driver.
 
static std::string GetCaption ()
 Get the caption to use for the game's title bar. More...
 
- Protected Member Functions inherited from VideoDriver
virtual Dimension GetScreenSize () const
 Get the resolution of the main screen.
 
virtual float GetDPIScale ()
 Get DPI scaling factor of the screen OTTD is displayed on. More...
 
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. More...
 
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. More...
 
void StartGameThread ()
 Start the loop for game-tick.
 
void StopGameThread ()
 Stop the loop for the game-tick. More...
 
void Tick ()
 Give the video-driver a tick. More...
 
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
wThe new width.
hThe 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.

◆ MakeDirty()

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

Mark a particular area dirty.

Parameters
leftThe left most line of the dirty area.
topThe top most line of the dirty area.
widthThe width of the dirty area.
heightThe 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
parmParameters 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 GetDriverParamInt(), ticks, and VideoDriver::UpdateAutoResolution().

◆ ToggleFullscreen()

bool VideoDriver_Null::ToggleFullscreen ( bool  fullscreen)
overridevirtual

Change the full screen setting.

Parameters
fullscreenThe new setting.
Returns
True if the change succeeded.

Implements VideoDriver.

Definition at line 68 of file null_v.cpp.


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