19 #ifndef MIR_GRAPHICS_MESA_DISPLAY_H_ 20 #define MIR_GRAPHICS_MESA_DISPLAY_H_ 43 class DisplayConfigurationPolicy;
44 class EventHandlerRegister;
57 class VirtualTerminal;
64 Display(std::shared_ptr<helpers::DRMHelper>
const& drm,
65 std::shared_ptr<helpers::GBMHelper>
const& gbm,
66 std::shared_ptr<VirtualTerminal>
const& vt,
68 std::shared_ptr<DisplayConfigurationPolicy>
const& initial_conf_policy,
69 std::shared_ptr<GLConfig>
const& gl_config,
70 std::shared_ptr<DisplayReport>
const& listener);
74 void for_each_display_sync_group(
77 std::unique_ptr<DisplayConfiguration> configuration()
const override;
80 void register_configuration_change_handler(
84 void register_pause_resume_handlers(
89 void pause()
override;
90 void resume()
override;
92 std::shared_ptr<graphics::Cursor> create_hardware_cursor(std::shared_ptr<CursorImage>
const& initial_image)
override;
93 std::unique_ptr<GLContext> create_gl_context()
override;
94 std::unique_ptr<VirtualOutput> create_virtual_output(
int width,
int height)
override;
97 void clear_connected_unused_outputs();
99 mutable std::mutex configuration_mutex;
100 std::shared_ptr<helpers::DRMHelper>
const drm;
101 std::shared_ptr<helpers::GBMHelper>
const gbm;
102 std::shared_ptr<VirtualTerminal>
const vt;
103 std::shared_ptr<DisplayReport>
const listener;
106 std::vector<std::unique_ptr<DisplayBuffer>> display_buffers;
109 mutable std::atomic<bool> dirty_configuration;
112 std::weak_ptr<Cursor> cursor;
113 std::shared_ptr<GLConfig>
const gl_config;
All things Mir.
Definition: atomic_callback.h:25
Definition: wrapper.h:120
Definition: real_kms_display_configuration.h:33
DisplaySyncGroup represents a group of displays that need to be output in unison as a single post() c...
Definition: display.h:55
std::function< bool()> DisplayResumeHandler
Definition: display.h:41
Definition: display_helpers.h:102
unsigned int width
Definition: touchspot_image.c:4
Definition: real_kms_output_container.h:34
std::function< bool()> DisplayPauseHandler
Definition: display.h:38
Definition: rectangle.h:33
unsigned int height
Definition: touchspot_image.c:5
Interface to the display subsystem.
Definition: display.h:88
std::function< void()> DisplayConfigurationChangeHandler
Definition: display.h:42
Interface to a configuration of display cards and outputs.
Definition: display_configuration.h:167
Definition: event_handler_register.h:32
BypassOption
Definition: platform_common.h:29