OpenTTD Source: VideoDriver_CocoaOpenGL Class Reference

OpenTTD Source 15.0-RC2

Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
VideoDriver_CocoaOpenGL Class Reference
Inheritance diagram for VideoDriver_CocoaOpenGL:

## Public Member Functions
std::optional< std::string_view > | Start (const StringList &param) override
| Start this driver.
void | Stop () override
| Stop this driver.
bool | HasEfficient8Bpp () const override
| Has this video driver an efficient code path for palette animated 8-bpp sprites?
bool | UseSystemCursor () override
| Get whether the mouse cursor is drawn by the video driver.
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?
uint8_t * | GetAnimBuffer () override
| Get a pointer to the animation buffer of the video back-end.
std::string_view | GetName () const override
| Return driver name.
std::string_view | GetInfoString () const override
void | AllocateBackingStore (bool force=false) override
Public Member Functions inherited from VideoDriver_Cocoa
| VideoDriver_Cocoa (bool uses_hardware_acceleration=false)
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 | 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 ()
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 | HasGUI () const
| Whether the driver has a graphical user interface with the end user.
virtual void | EditBoxGainedFocus ()
| An edit box gained the input focus.
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.

## Protected Member Functions
void | Paint () override
| Paint the window.
void * | GetVideoPointer () override
| Get a pointer to the video buffer.
void | ReleaseVideoPointer () override
| Hand video buffer back to the drawing backend.
NSView * | AllocateDrawView () override
Protected Member Functions inherited from VideoDriver_Cocoa
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.
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)
Protected Member Functions inherited from VideoDriver
void | UpdateAutoResolution ()
| Apply resolution auto-detection and clamp to sensible defaults.
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.

## Private Member Functions
std::optional< std::string_view > | AllocateContext (bool allow_software)

## Private Attributes
CGLContextObj | gl_context
uint8_t * | anim_buffer
| Animation buffer from OpenGL back-end.
std::string | driver_info
| Information string about selected driver.

## Additional Inherited Members
Public Types inherited from Driver
enum | Type : uint8_t { 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.
Data Fields inherited from VideoDriver_Cocoa
bool | setup
| Window is currently being created.
OTTD_CocoaWindow * | window
| Pointer to window object.
OTTD_CocoaView * | cocoaview
| Pointer to view object.
CGColorSpaceRef | colour_space
| Window colour space.
OTTD_CocoaWindowDelegate * | delegate
| Window delegate object.
Static Protected Member Functions inherited from VideoDriver
static void | GameThreadThunk (VideoDriver *drv)
Protected Attributes inherited from VideoDriver_Cocoa
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

## Detailed Description

Definition at line 17 of file cocoa_ogl.h.

## Constructor & Destructor Documentation

## ◆ VideoDriver_CocoaOpenGL()

VideoDriver_CocoaOpenGL::VideoDriver_CocoaOpenGL | ( |  | ) |
| inline

Definition at line 26 of file cocoa_ogl.h.

## Member Function Documentation

## ◆ AllocateBackingStore()

void VideoDriver_CocoaOpenGL::AllocateBackingStore | ( | bool | force = `false` | ) |
| overridevirtual

Implements VideoDriver_Cocoa.

## ◆ AllocateDrawView()

NSView * VideoDriver_CocoaOpenGL::AllocateDrawView | ( |  | ) |
| overrideprotectedvirtual

Implements VideoDriver_Cocoa.

## ◆ ClearSystemSprites()

void VideoDriver_CocoaOpenGL::ClearSystemSprites | ( |  | ) |
| overridevirtual

Clear all cached sprites.

Reimplemented from VideoDriver_Cocoa.

## ◆ GetAnimBuffer()

uint8_t * VideoDriver_CocoaOpenGL::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 40 of file cocoa_ogl.h.

References anim_buffer.

## ◆ GetInfoString()

std::string_view VideoDriver_CocoaOpenGL::GetInfoString | ( |  | ) | const
| inlineoverridevirtual

Reimplemented from VideoDriver.

Definition at line 45 of file cocoa_ogl.h.

## ◆ GetName()

std::string_view VideoDriver_CocoaOpenGL::GetName | ( |  | ) | const
| inlineoverridevirtual

Return driver name.

Implements Driver.

Definition at line 43 of file cocoa_ogl.h.

## ◆ GetVideoPointer()

void * VideoDriver_CocoaOpenGL::GetVideoPointer | ( |  | ) |
| overrideprotectedvirtual

Get a pointer to the video buffer.

Implements VideoDriver_Cocoa.

## ◆ HasAnimBuffer()

bool VideoDriver_CocoaOpenGL::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 39 of file cocoa_ogl.h.

## ◆ HasEfficient8Bpp()

bool VideoDriver_CocoaOpenGL::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 31 of file cocoa_ogl.h.

## ◆ Paint()

void VideoDriver_CocoaOpenGL::Paint | ( |  | ) |
| overrideprotectedvirtual

Paint the window.

Reimplemented from VideoDriver.

## ◆ PopulateSystemSprites()

void VideoDriver_CocoaOpenGL::PopulateSystemSprites | ( |  | ) |
| overridevirtual

Populate all sprites in cache.

Reimplemented from VideoDriver_Cocoa.

## ◆ ReleaseVideoPointer()

void VideoDriver_CocoaOpenGL::ReleaseVideoPointer | ( |  | ) |
| overrideprotectedvirtual

Hand video buffer back to the drawing backend.

Reimplemented from VideoDriver_Cocoa.

## ◆ Start()

std::optional< std::string_view > VideoDriver_CocoaOpenGL::Start | ( | const StringList & | parm | ) |
| overridevirtual

Start this driver.

Parameters

  parm | Parameters passed to the driver.

Returns
  std::nullopt if everything went okay, otherwise an error message.

Implements Driver.

## ◆ Stop()

void VideoDriver_CocoaOpenGL::Stop | ( |  | ) |
| overridevirtual

Stop this driver.

Reimplemented from VideoDriver_Cocoa.

## ◆ UseSystemCursor()

bool VideoDriver_CocoaOpenGL::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 33 of file cocoa_ogl.h.

## Field Documentation

## ◆ anim_buffer

uint8_t* VideoDriver_CocoaOpenGL::anim_buffer
| private

Animation buffer from OpenGL back-end.

Definition at line 20 of file cocoa_ogl.h.

Referenced by GetAnimBuffer().

## ◆ driver_info

std::string VideoDriver_CocoaOpenGL::driver_info
| private

Information string about selected driver.

Definition at line 21 of file cocoa_ogl.h.

## ◆ gl_context

CGLContextObj VideoDriver_CocoaOpenGL::gl_context
| private

Definition at line 18 of file cocoa_ogl.h.

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

- src/video/cocoa/cocoa_ogl.h