Mir
Public Member Functions | List of all members
mir::graphics::Display Class Referenceabstract

Interface to the display subsystem. More...

#include <display.h>

Public Member Functions

virtual void for_each_display_sync_group (std::function< void(DisplaySyncGroup &)> const &f)=0
 Executes a functor for each output group. More...
 
virtual std::unique_ptr< DisplayConfigurationconfiguration () const =0
 Gets a copy of the current output configuration. More...
 
virtual bool apply_if_configuration_preserves_display_buffers (DisplayConfiguration const &conf)=0
 Applying a display configuration only if it will not invalidate existing DisplayBuffers. More...
 
virtual void configure (DisplayConfiguration const &conf)=0
 Sets a new output configuration. More...
 
virtual void register_configuration_change_handler (EventHandlerRegister &handlers, DisplayConfigurationChangeHandler const &conf_change_handler)=0
 Registers a handler for display configuration changes. More...
 
virtual void register_pause_resume_handlers (EventHandlerRegister &handlers, DisplayPauseHandler const &pause_handler, DisplayResumeHandler const &resume_handler)=0
 Registers handlers for pausing and resuming the display subsystem. More...
 
virtual void pause ()=0
 Pauses the display. More...
 
virtual void resume ()=0
 Resumes the display. More...
 
virtual std::shared_ptr< Cursorcreate_hardware_cursor (std::shared_ptr< CursorImage > const &initial_image)=0
 Create a hardware cursor object. More...
 
virtual std::unique_ptr< VirtualOutputcreate_virtual_output (int width, int height)=0
 Creates a virtual output. More...
 
virtual NativeDisplaynative_display ()=0
 Returns a pointer to the native display object backing this display. More...
 
virtual Frame last_frame_on (unsigned output_id) const =0
 Returns timing information for the last frame displayed on a given output. More...
 
 Display ()=default
 
virtual ~Display ()=default
 

Detailed Description

Interface to the display subsystem.

Examples:
render_surfaces.cpp.

Constructor & Destructor Documentation

mir::graphics::Display::Display ( )
default
virtual mir::graphics::Display::~Display ( )
virtualdefault

Member Function Documentation

virtual bool mir::graphics::Display::apply_if_configuration_preserves_display_buffers ( DisplayConfiguration const &  conf)
pure virtual

Applying a display configuration only if it will not invalidate existing DisplayBuffers.

The Display must guarantee that the references to the DisplayBuffer acquired via DisplaySyncGroup::for_each_display_buffer() remain valid until the Display is destroyed or Display::configure() is called.

If this function returns true then the new display configuration has been applied. If this function returns false then the new display configuration has not been applied.

In either case this function guarantees that existing DisplayBuffer references will remain valid.

Parameters
conf[in] Configuration to possibly apply.
Returns
true if conf has been applied as the new output configuration.
virtual std::unique_ptr<DisplayConfiguration> mir::graphics::Display::configuration ( ) const
pure virtual

Gets a copy of the current output configuration.

virtual void mir::graphics::Display::configure ( DisplayConfiguration const &  conf)
pure virtual

Sets a new output configuration.

virtual std::shared_ptr<Cursor> mir::graphics::Display::create_hardware_cursor ( std::shared_ptr< CursorImage > const &  initial_image)
pure virtual

Create a hardware cursor object.

virtual std::unique_ptr<VirtualOutput> mir::graphics::Display::create_virtual_output ( int  width,
int  height 
)
pure virtual

Creates a virtual output.

Returns
null if the implementation does not support virtual outputs
virtual void mir::graphics::Display::for_each_display_sync_group ( std::function< void(DisplaySyncGroup &)> const &  f)
pure virtual

Executes a functor for each output group.

Examples:
render_surfaces.cpp.
virtual Frame mir::graphics::Display::last_frame_on ( unsigned  output_id) const
pure virtual

Returns timing information for the last frame displayed on a given output.

Frame timing will be provided to clients only when they request it. This is to ensure idle clients never get woken by unwanted events. It is also distinctly separate from the display configuration as this timing information changes many times per second and should not interfere with the more static display configuration.

Note: Using unsigned here because DisplayConfigurationOutputId is troublesome (can't be forward declared) and including display_configuration.h to get it would be an overkill.

virtual NativeDisplay* mir::graphics::Display::native_display ( )
pure virtual

Returns a pointer to the native display object backing this display.

The pointer to the native display remains valid as long as the display object is valid.

Examples:
render_surfaces.cpp.
virtual void mir::graphics::Display::pause ( )
pure virtual

Pauses the display.

This method may temporarily (until resumed) release any resources associated with the display subsystem.

virtual void mir::graphics::Display::register_configuration_change_handler ( EventHandlerRegister handlers,
DisplayConfigurationChangeHandler const &  conf_change_handler 
)
pure virtual

Registers a handler for display configuration changes.

Note that the handler is called only for hardware changes (e.g. monitor plugged/unplugged), not for changes initiated by software (e.g. modesetting).

The implementation should use the functionality provided by the MainLoop to register the handlers in a way appropriate for the platform.

virtual void mir::graphics::Display::register_pause_resume_handlers ( EventHandlerRegister handlers,
DisplayPauseHandler const &  pause_handler,
DisplayResumeHandler const &  resume_handler 
)
pure virtual

Registers handlers for pausing and resuming the display subsystem.

The implementation should use the functionality provided by the EventHandlerRegister to register the handlers in a way appropriate for the platform.

virtual void mir::graphics::Display::resume ( )
pure virtual

Resumes the display.


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

Copyright © 2012-2016 Canonical Ltd.
Generated on Mon Jun 5 13:49:26 UTC 2017