OpenTTD Source  1.11.0-beta1
VideoDriver_SDL Class Reference

The SDL video driver. More...

#include <sdl2_v.h>

Inheritance diagram for VideoDriver_SDL:
VideoDriver Driver

Public Member Functions

const char * 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...
 
bool AfterBlitterChange () override
 Callback invoked after the blitter was changed. More...
 
void AcquireBlitterLock () override
 Acquire any lock(s) required to be held when changing blitters. More...
 
void ReleaseBlitterLock () override
 Release any lock(s) required to be held when changing blitters. More...
 
bool ClaimMousePointer () override
 
void EditBoxGainedFocus () override
 An edit box gained the input focus.
 
void EditBoxLostFocus () override
 An edit box lost the input focus. More...
 
const char * GetName () const override
 Get the name of this driver. More...
 
const char * 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...
 
bool AfterBlitterChange () override
 Callback invoked after the blitter was changed. More...
 
void AcquireBlitterLock () override
 Acquire any lock(s) required to be held when changing blitters. More...
 
void ReleaseBlitterLock () override
 Release any lock(s) required to be held when changing blitters. More...
 
bool ClaimMousePointer () override
 
const char * GetName () const override
 Get the name of this driver. More...
 
- Public Member Functions inherited from VideoDriver
virtual bool HasGUI () const
 Whether the driver has a graphical user interface with the end user. More...
 

Protected Member Functions

Dimension GetScreenSize () const override
 
- Protected Member Functions inherited from VideoDriver
void UpdateAutoResolution ()
 Apply resolution auto-detection and clamp to sensible defaults.
 

Private Member Functions

int PollEvent ()
 
void LoopOnce ()
 
void MainLoopCleanup ()
 
bool CreateMainSurface (uint w, uint h, bool resize)
 
int PollEvent ()
 
bool CreateMainSurface (uint w, uint h)
 
void SetupKeyboard ()
 

Private Attributes

bool edit_box_focused
 This is true to indicate that keyboard input is in text input mode, and SDL_TEXTINPUT events are enabled.
 
uint32 cur_ticks
 
uint32 last_cur_ticks
 
uint32 next_tick
 
int startup_display
 
std::thread draw_thread
 
std::unique_lock< std::recursive_mutex > draw_lock
 

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.
 

Detailed Description

The SDL video driver.

Definition at line 16 of file sdl2_v.h.

Member Function Documentation

◆ AcquireBlitterLock() [1/2]

void VideoDriver_SDL::AcquireBlitterLock ( )
overridevirtual

Acquire any lock(s) required to be held when changing blitters.

These lock(s) may not be acquired recursively.

Reimplemented from VideoDriver.

Definition at line 825 of file sdl_v.cpp.

References _draw_mutex.

◆ AcquireBlitterLock() [2/2]

void VideoDriver_SDL::AcquireBlitterLock ( )
overridevirtual

Acquire any lock(s) required to be held when changing blitters.

These lock(s) may not be acquired recursively.

Reimplemented from VideoDriver.

◆ AfterBlitterChange() [1/2]

bool VideoDriver_SDL::AfterBlitterChange ( )
overridevirtual

Callback invoked after the blitter was changed.

This may only be called between AcquireBlitterLock and ReleaseBlitterLock.

Returns
True if no error.

Reimplemented from VideoDriver.

Definition at line 820 of file sdl_v.cpp.

◆ AfterBlitterChange() [2/2]

bool VideoDriver_SDL::AfterBlitterChange ( )
overridevirtual

Callback invoked after the blitter was changed.

This may only be called between AcquireBlitterLock and ReleaseBlitterLock.

Returns
True if no error.

Reimplemented from VideoDriver.

◆ ChangeResolution() [1/2]

bool VideoDriver_SDL::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.

◆ ChangeResolution() [2/2]

bool VideoDriver_SDL::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 795 of file sdl_v.cpp.

References _draw_mutex, and lock.

◆ EditBoxLostFocus()

void VideoDriver_SDL::EditBoxLostFocus ( )
overridevirtual

An edit box lost the input focus.

Abort character compositing if necessary.

Reimplemented from VideoDriver.

◆ GetName() [1/2]

const char* VideoDriver_SDL::GetName ( ) const
inlineoverridevirtual

Get the name of this driver.

Returns
The name of the driver.

Implements Driver.

Definition at line 38 of file sdl_v.h.

◆ GetName() [2/2]

const char* VideoDriver_SDL::GetName ( ) const
inlineoverridevirtual

Get the name of this driver.

Returns
The name of the driver.

Implements Driver.

Definition at line 42 of file sdl2_v.h.

◆ MakeDirty() [1/2]

void VideoDriver_SDL::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 53 of file sdl_v.cpp.

◆ MakeDirty() [2/2]

void VideoDriver_SDL::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.

◆ ReleaseBlitterLock() [1/2]

void VideoDriver_SDL::ReleaseBlitterLock ( )
overridevirtual

Release any lock(s) required to be held when changing blitters.

These lock(s) may not be acquired recursively.

Reimplemented from VideoDriver.

Definition at line 830 of file sdl_v.cpp.

References _draw_mutex.

◆ ReleaseBlitterLock() [2/2]

void VideoDriver_SDL::ReleaseBlitterLock ( )
overridevirtual

Release any lock(s) required to be held when changing blitters.

These lock(s) may not be acquired recursively.

Reimplemented from VideoDriver.

◆ Start() [1/2]

const char* VideoDriver_SDL::Start ( const StringList parm)
overridevirtual

Start this driver.

Parameters
parmParameters passed to the driver.
Returns
nullptr if everything went okay, otherwise an error message.

Implements Driver.

◆ Start() [2/2]

const char * VideoDriver_SDL::Start ( const StringList parm)
overridevirtual

Start this driver.

Parameters
parmParameters passed to the driver.
Returns
nullptr if everything went okay, otherwise an error message.

Implements Driver.

Definition at line 601 of file sdl_v.cpp.

◆ ToggleFullscreen() [1/2]

bool VideoDriver_SDL::ToggleFullscreen ( bool  fullscreen)
overridevirtual

Change the full screen setting.

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

Implements VideoDriver.

◆ ToggleFullscreen() [2/2]

bool VideoDriver_SDL::ToggleFullscreen ( bool  fullscreen)
overridevirtual

Change the full screen setting.

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

Implements VideoDriver.

Definition at line 803 of file sdl_v.cpp.

References _draw_mutex, and lock.


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