OpenTTD Source
1.11.0-beta2
|
The SDL video driver. More...
#include <sdl_v.h>
Public Member Functions | |
const char * | Start (const StringList ¶m) 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... | |
![]() | |
virtual bool | UseSystemCursor () |
Get whether the mouse cursor is drawn by the video driver. More... | |
virtual void | ClearSystemSprites () |
Clear all cached sprites. | |
virtual bool | HasGUI () const |
Whether the driver has a graphical user interface with the end user. More... | |
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 * | 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 ZoomLevel | GetSuggestedUIZoom () |
Get a suggested default GUI zoom taking screen DPI into account. | |
Protected Member Functions | |
void | InputLoop () override |
Handle input logic, is CTRL pressed, should we fast-forward, etc. | |
bool | LockVideoBuffer () override |
Make sure the video buffer is ready for drawing. More... | |
void | UnlockVideoBuffer () override |
Unlock a previously locked video buffer. | |
void | Paint () override |
Paint the window. | |
void | PaintThread () override |
Thread function for threaded drawing. | |
void | CheckPaletteAnim () override |
Process any pending palette animation. | |
bool | PollEvent () override |
Process a single system event. More... | |
![]() | |
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. | |
bool | Tick () |
Run the game for a single tick, processing boththe game-tick and draw-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 () |
Private Member Functions | |
bool | CreateMainSurface (uint w, uint h) |
void | SetupKeyboard () |
Static Private Member Functions | |
static void | PaintThreadThunk (VideoDriver_SDL *drv) |
Private Attributes | |
std::unique_lock< std::recursive_mutex > | draw_lock |
Additional Inherited Members | |
![]() | |
enum | Type { DT_BEGIN = 0, DT_MUSIC = 0, DT_SOUND, DT_VIDEO, DT_END } |
The type of driver. More... | |
![]() | |
static VideoDriver * | GetInstance () |
Get the currently active instance of the video driver. | |
![]() | |
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. | |
|
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 774 of file sdl_v.cpp.
References _draw_mutex.
|
overridevirtual |
Callback invoked after the blitter was changed.
This may only be called between AcquireBlitterLock and ReleaseBlitterLock.
Reimplemented from VideoDriver.
|
overridevirtual |
Change the resolution of the window.
w | The new width. |
h | The new height. |
Implements VideoDriver.
Definition at line 744 of file sdl_v.cpp.
References _draw_mutex, and lock.
|
inlineoverridevirtual |
|
overrideprotectedvirtual |
Make sure the video buffer is ready for drawing.
Reimplemented from VideoDriver.
Definition at line 784 of file sdl_v.cpp.
References _draw_threaded.
|
overridevirtual |
Mark a particular area dirty.
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.
|
overrideprotectedvirtual |
Process a single system event.
Reimplemented from VideoDriver.
|
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 779 of file sdl_v.cpp.
References _draw_mutex.
|
overridevirtual |
|
overridevirtual |
Change the full screen setting.
fullscreen | The new setting. |
Implements VideoDriver.
Definition at line 752 of file sdl_v.cpp.
References _draw_mutex, and lock.