OpenTTD Source: VideoDriver_SDL_OpenGL Class Reference

OpenTTD Source 14.0-beta3

Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
VideoDriver_SDL_OpenGL Class Reference

The OpenGL video driver for windows. More...

`#include <sdl2_opengl_v.h>`

Inheritance diagram for VideoDriver_SDL_OpenGL:

## Public Member Functions
const char * | Start (const StringList &param) override
| Start this driver. More...
void | Stop () override
| Stop this driver.
bool | HasEfficient8Bpp () const override
| Has this video driver an efficient code path for palette animated 8-bpp sprites? More...
bool | UseSystemCursor () override
| Get whether the mouse cursor is drawn by the video driver. More...
void | ClearSystemSprites () override
| Clear all cached sprites.
void | PopulateSystemSprites () override
| Populate all sprites in cache.
bool | HasAnimBuffer () override
| Does this video driver support a separate animation buffer in addition to the colour buffer? More...
uint8_t * | GetAnimBuffer () override
| Get a pointer to the animation buffer of the video back-end. More...
void | ToggleVsync (bool vsync) override
const char * | GetName () const override
| Get the name of this driver. More...
Public Member Functions inherited from VideoDriver_SDL_Base
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...
bool | ClaimMousePointer () override
void | EditBoxGainedFocus () override
| This is called to indicate that an edit box has gained focus, text input mode should be enabled.
void | EditBoxLostFocus () override
| This is called to indicate that an edit box has lost focus, text input mode should be disabled.
std::vector< int > | GetListOfMonitorRefreshRates () override
| Get a list of refresh rates of each available monitor. More...
const char * | GetInfoString () const override
Public Member Functions inherited from VideoDriver
virtual void | ToggleVsync ([[maybe_unused]] bool vsync)
| Change the vsync setting. More...
virtual bool | HasGUI () const
| Whether the driver has a graphical user interface with the end user. More...
virtual int | GetSuggestedUIScale ()
| Get a suggested default GUI scale taking screen DPI into account.
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...

## Protected Member Functions
bool | AllocateBackingStore (int w, int h, bool force=false) override
| (Re-)create the backing store.
void * | GetVideoPointer () override
| Get a pointer to the video buffer.
void | ReleaseVideoPointer () override
| Hand video buffer back to the painting backend.
void | Paint () override
| Paint the window.
bool | CreateMainWindow (uint w, uint h, uint flags) override
| Create the main window.
Protected Member Functions inherited from VideoDriver_SDL_Base
Dimension | GetScreenSize () const override
| Get the resolution of the main screen.
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 | CheckPaletteAnim () override
| Process any pending palette animation.
bool | PollEvent () override
| Process a single system event. More...
void | ClientSizeChanged (int w, int h, bool force)
| Indicate to the driver the client-side might have changed.
Protected Member Functions inherited from VideoDriver
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.
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.

## Private Member Functions
const char * | AllocateContext ()
void | DestroyContext ()

## Private Attributes
void * | gl_context
| OpenGL context.
uint8_t * | anim_buffer
| Animation buffer from OpenGL back-end.

## 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 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. More...
Static Protected Member Functions inherited from VideoDriver
static void | GameThreadThunk (VideoDriver *drv)
Protected Attributes inherited from VideoDriver_SDL_Base
struct SDL_Window * | sdl_window
| Main SDL window.
Palette | local_palette
| Current palette to use for drawing.
bool | buffer_locked
| Video buffer was locked by the main thread.
Rect | dirty_rect
| Rectangle encompassing the dirty area of the video buffer.
std::string | driver_info
| Information string about selected driver.
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

## Detailed Description

The OpenGL video driver for windows.

Definition at line 13 of file sdl2_opengl_v.h.

## Member Function Documentation

## ◆ GetAnimBuffer()

uint8_t* VideoDriver_SDL_OpenGL::GetAnimBuffer | ( |  | ) |
| inlineoverridevirtual

Get a pointer to the animation buffer of the video back-end.

Returns
  Pointer to the buffer or nullptr if no animation buffer is supported.

Reimplemented from VideoDriver.

Definition at line 30 of file sdl2_opengl_v.h.

References anim_buffer.

## ◆ GetName()

const char* VideoDriver_SDL_OpenGL::GetName | ( |  | ) | const
| inlineoverridevirtual

Get the name of this driver.

Returns
  The name of the driver.

Implements Driver.

Definition at line 34 of file sdl2_opengl_v.h.

## ◆ HasAnimBuffer()

bool VideoDriver_SDL_OpenGL::HasAnimBuffer | ( |  | ) |
| inlineoverridevirtual

Does this video driver support a separate animation buffer in addition to the colour buffer?

Returns
  True if a separate animation buffer is supported.

Reimplemented from VideoDriver.

Definition at line 29 of file sdl2_opengl_v.h.

## ◆ HasEfficient8Bpp()

bool VideoDriver_SDL_OpenGL::HasEfficient8Bpp | ( |  | ) | const
| inlineoverridevirtual

Has this video driver an efficient code path for palette animated 8-bpp sprites?

Returns
  True if the driver has an efficient code path for 8-bpp.

Reimplemented from VideoDriver.

Definition at line 21 of file sdl2_opengl_v.h.

## ◆ Start()

const char * VideoDriver_SDL_OpenGL::Start | ( | const StringList & | parm | ) |
| overridevirtual

Start this driver.

Parameters

  parm | Parameters passed to the driver.

Returns
  nullptr if everything went okay, otherwise an error message.

Implements Driver.

Definition at line 56 of file sdl2_opengl_v.cpp.

References VideoDriver_SDL_Base::ClientSizeChanged(), VideoDriver_SDL_Base::driver_info, OpenGLBackend::Get(), VideoDriver_SDL_Base::sdl_window, VideoDriver_SDL_Base::Start(), and Stop().

## ◆ UseSystemCursor()

bool VideoDriver_SDL_OpenGL::UseSystemCursor | ( |  | ) |
| inlineoverridevirtual

Get whether the mouse cursor is drawn by the video driver.

Returns
  True if cursor drawing is done by the video driver.

Reimplemented from VideoDriver.

Definition at line 23 of file sdl2_opengl_v.h.

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

- src/video/sdl2_opengl_v.h
- src/video/sdl2_opengl_v.cpp