OpenTTD Source: VideoDriver_Cocoa Class Reference

OpenTTD Source 15.0-beta1

Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
VideoDriver_Cocoa Class Referenceabstract
Inheritance diagram for VideoDriver_Cocoa:

## Public Member Functions
| VideoDriver_Cocoa (bool uses_hardware_acceleration=false)
void | Stop () override
| Stop this driver.
void | MainLoop () override
| Perform the actual drawing.
void | MakeDirty (int left, int top, int width, int height) override
| Mark a particular area dirty.
bool | AfterBlitterChange () override
| Callback invoked after the blitter was changed.
bool | ChangeResolution (int w, int h) override
| Change the resolution of the window.
bool | ToggleFullscreen (bool fullscreen) override
| Change the full screen setting.
void | ClearSystemSprites () override
| Clear all cached sprites.
void | PopulateSystemSprites () override
| Populate all sprites in cache.
void | EditBoxLostFocus () override
| An edit box lost the input focus.
std::vector< int > | GetListOfMonitorRefreshRates () override
| Get a list of refresh rates of each available monitor.
void | MainLoopReal ()
virtual void | AllocateBackingStore (bool force=false)=0
Public Member Functions inherited from VideoDriver
| VideoDriver (bool uses_hardware_acceleration=false)
virtual void | ToggleVsync (bool vsync)
| Change the vsync setting.
virtual bool | ClaimMousePointer ()
virtual bool | UseSystemCursor ()
| Get whether the mouse cursor is drawn by the video driver.
virtual bool | HasGUI () const
| Whether the driver has a graphical user interface with the end user.
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 | EditBoxGainedFocus ()
| An edit box gained the input focus.
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.
void | GameLoopPause ()
| Pause the game-loop for a bit, releasing the game-state lock.
Public Member Functions inherited from Driver
virtual std::optional< std::string_view > | Start (const StringList &parm)=0
| Start this driver.
virtual std::string_view | GetName () const =0
| Get the name of this driver.

## Data Fields
bool | setup
| Window is currently being created.
OTTD_CocoaWindow * | window
| Pointer to window object.
OTTD_CocoaView * | cocoaview
| Pointer to view object.
CGColorSpaceRef | color_space
| Window color space.
OTTD_CocoaWindowDelegate * | delegate
| Window delegate object.

## Protected Member Functions
Dimension | GetScreenSize () const override
| Get the resolution of the main screen.
float | GetDPIScale () override
| Get DPI scaling factor of the screen OTTD is displayed on.
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.
void | UnlockVideoBuffer () override
| Unlock a previously locked video buffer.
bool | PollEvent () override
| Process a single system event.
void | GameSizeChanged ()
std::optional< std::string_view > | Initialize ()
void | UpdateVideoModes ()
bool | MakeWindow (int width, int height)
virtual NSView * | AllocateDrawView ()=0
virtual void * | GetVideoPointer ()=0
| Get a pointer to the video buffer.
virtual void | ReleaseVideoPointer ()
| Hand video buffer back to the drawing backend.
Protected Member Functions inherited from VideoDriver
void | UpdateAutoResolution ()
| Apply resolution auto-detection and clamp to sensible defaults.
virtual void | Paint ()
| Paint the window.
virtual void | CheckPaletteAnim ()
| Process any pending palette animation.
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.

## Protected Attributes
Rect | dirty_rect
| Region of the screen that needs redrawing.
bool | buffer_locked
| Video buffer was locked by the main thread.
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

## Private Member Functions
bool | IsFullscreen ()

## Private Attributes
Dimension | orig_res
| Saved window size for non-fullscreen mode.
bool | refresh_sys_sprites
| System sprites need refreshing.

## 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.
Static Protected Member Functions inherited from VideoDriver
static void | GameThreadThunk (VideoDriver *drv)

## Detailed Description

Definition at line 23 of file cocoa_v.h.

## Member Function Documentation

## ◆ AfterBlitterChange()

bool VideoDriver_Cocoa::AfterBlitterChange | ( |  | ) |
| overridevirtual

Callback invoked after the blitter was changed.

Returns
  True if no error.

Reimplemented from VideoDriver.

## ◆ ChangeResolution()

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

## ◆ ClearSystemSprites()

void VideoDriver_Cocoa::ClearSystemSprites | ( |  | ) |
| overridevirtual

Clear all cached sprites.

Reimplemented from VideoDriver.

Reimplemented in VideoDriver_CocoaOpenGL.

## ◆ EditBoxLostFocus()

void VideoDriver_Cocoa::EditBoxLostFocus | ( |  | ) |
| overridevirtual

An edit box lost the input focus.

Abort character compositing if necessary.

Reimplemented from VideoDriver.

## ◆ GetDPIScale()

float VideoDriver_Cocoa::GetDPIScale | ( |  | ) |
| overrideprotectedvirtual

Get DPI scaling factor of the screen OTTD is displayed on.

Returns
  1.0 for default platform DPI, > 1.0 for higher DPI values, and < 1.0 for smaller DPI values.

Reimplemented from VideoDriver.

## ◆ GetListOfMonitorRefreshRates()

std::vector< int > VideoDriver_Cocoa::GetListOfMonitorRefreshRates | ( |  | ) |
| overridevirtual

Get a list of refresh rates of each available monitor.

Returns
  A vector of the refresh rates of all available monitors.

Reimplemented from VideoDriver.

## ◆ GetScreenSize()

Dimension VideoDriver_Cocoa::GetScreenSize | ( |  | ) | const
| overrideprotectedvirtual

Get the resolution of the main screen.

Reimplemented from VideoDriver.

## ◆ GetVideoPointer()

virtual void * VideoDriver_Cocoa::GetVideoPointer | ( |  | ) |
| protectedpure virtual

Get a pointer to the video buffer.

Implemented in VideoDriver_CocoaOpenGL, and VideoDriver_CocoaQuartz.

## ◆ InputLoop()

void VideoDriver_Cocoa::InputLoop | ( |  | ) |
| overrideprotectedvirtual

Handle input logic, is CTRL pressed, should we fast-forward, etc.

Reimplemented from VideoDriver.

## ◆ LockVideoBuffer()

bool VideoDriver_Cocoa::LockVideoBuffer | ( |  | ) |
| overrideprotectedvirtual

Make sure the video buffer is ready for drawing.

Returns
  True if the video buffer has to be unlocked.

Reimplemented from VideoDriver.

## ◆ MainLoop()

void VideoDriver_Cocoa::MainLoop | ( |  | ) |
| overridevirtual

Perform the actual drawing.

Implements VideoDriver.

## ◆ MakeDirty()

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

## ◆ PollEvent()

bool VideoDriver_Cocoa::PollEvent | ( |  | ) |
| overrideprotectedvirtual

Process a single system event.

Returns
  False if there are no more events to process.

Reimplemented from VideoDriver.

## ◆ PopulateSystemSprites()

void VideoDriver_Cocoa::PopulateSystemSprites | ( |  | ) |
| overridevirtual

Populate all sprites in cache.

Reimplemented from VideoDriver.

Reimplemented in VideoDriver_CocoaOpenGL.

## ◆ ReleaseVideoPointer()

virtual void VideoDriver_Cocoa::ReleaseVideoPointer | ( |  | ) |
| inlineprotectedvirtual

Hand video buffer back to the drawing backend.

Reimplemented in VideoDriver_CocoaOpenGL.

Definition at line 86 of file cocoa_v.h.

## ◆ Stop()

void VideoDriver_Cocoa::Stop | ( |  | ) |
| overridevirtual

Stop this driver.

Implements Driver.

Reimplemented in VideoDriver_CocoaOpenGL, and VideoDriver_CocoaQuartz.

## ◆ ToggleFullscreen()

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

Change the full screen setting.

Parameters

  fullscreen | The new setting.

Returns
  True if the change succeeded.

Implements VideoDriver.

## ◆ UnlockVideoBuffer()

void VideoDriver_Cocoa::UnlockVideoBuffer | ( |  | ) |
| overrideprotectedvirtual

Unlock a previously locked video buffer.

Reimplemented from VideoDriver.

## Field Documentation

## ◆ buffer_locked

bool VideoDriver_Cocoa::buffer_locked
| protected

Video buffer was locked by the main thread.

Definition at line 64 of file cocoa_v.h.

## ◆ cocoaview

OTTD_CocoaView* VideoDriver_Cocoa::cocoaview

Pointer to view object.

Definition at line 32 of file cocoa_v.h.

## ◆ color_space

CGColorSpaceRef VideoDriver_Cocoa::color_space

Window color space.

Definition at line 33 of file cocoa_v.h.

## ◆ delegate

OTTD_CocoaWindowDelegate* VideoDriver_Cocoa::delegate

Window delegate object.

Definition at line 35 of file cocoa_v.h.

## ◆ dirty_rect

Rect VideoDriver_Cocoa::dirty_rect
| protected

Region of the screen that needs redrawing.

Definition at line 63 of file cocoa_v.h.

## ◆ orig_res

Dimension VideoDriver_Cocoa::orig_res
| private

Saved window size for non-fullscreen mode.

Definition at line 25 of file cocoa_v.h.

## ◆ refresh_sys_sprites

bool VideoDriver_Cocoa::refresh_sys_sprites
| private

System sprites need refreshing.

Definition at line 26 of file cocoa_v.h.

## ◆ setup

bool VideoDriver_Cocoa::setup

Window is currently being created.

Definition at line 29 of file cocoa_v.h.

## ◆ window

OTTD_CocoaWindow* VideoDriver_Cocoa::window

Pointer to window object.

Definition at line 31 of file cocoa_v.h.

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

- src/video/cocoa/cocoa_v.h