19 #ifndef MIR_GRAPHICS_NESTED_NESTED_DISPLAY_H_
20 #define MIR_GRAPHICS_NESTED_NESTED_DISPLAY_H_
32 #include <unordered_map>
36 namespace input {
class EventFilter; }
45 class DisplayConfigurationPolicy;
56 explicit EGLSurfaceHandle(EGLDisplay display, EGLNativeWindowType native_window, EGLConfig cfg);
59 operator EGLSurface()
const {
return egl_surface; }
62 EGLDisplay
const egl_display;
63 EGLSurface
const egl_surface;
70 std::shared_ptr<GLConfig>
const& gl_config);
77 operator EGLDisplay()
const {
return egl_display; }
80 EGLDisplay egl_display;
81 EGLContext egl_context_;
82 std::shared_ptr<GLConfig>
const gl_config;
99 std::shared_ptr<HostConnection>
const& connection,
100 std::shared_ptr<input::EventFilter>
const& event_handler,
101 std::shared_ptr<DisplayReport>
const& display_report,
102 std::shared_ptr<DisplayConfigurationPolicy>
const& conf_policy,
103 std::shared_ptr<GLConfig>
const& gl_config);
109 std::unique_ptr<DisplayConfiguration>
configuration()
const override;
121 void pause()
override;
128 std::shared_ptr<HostConnection>
const connection;
129 std::shared_ptr<input::EventFilter>
const event_handler;
130 std::shared_ptr<DisplayReport>
const display_report;
133 std::mutex outputs_mutex;
134 std::unordered_map<DisplayConfigurationOutputId, std::shared_ptr<detail::NestedOutput>> outputs;
143 #endif // MIR_GRAPHICS_NESTED_NESTED_DISPLAY_H_
~EGLDisplayHandle() noexcept
Definition: nested_display.cpp:130
void register_pause_resume_handlers(EventHandlerRegister &handlers, DisplayPauseHandler const &pause_handler, DisplayResumeHandler const &resume_handler) override
Registers handlers for pausing and resuming the display subsystem.
Definition: nested_display.cpp:262
Definition: mir_surface.h:54
void initialize(MirPixelFormat format)
Definition: nested_display.cpp:75
EGLNativeWindowType native_window(EGLConfig egl_config, MirSurface *mir_surface) const
Definition: nested_display.cpp:115
Interface to an output framebuffer.
Definition: display_buffer.h:39
void resume() override
Resumes the display.
Definition: nested_display.cpp:276
Definition: nested_display.h:95
EGLSurfaceHandle(EGLDisplay display, EGLNativeWindowType native_window, EGLConfig cfg)
Definition: nested_display.cpp:47
std::weak_ptr< Cursor > the_cursor() override
Gets the hardware cursor object.
Definition: nested_display.cpp:282
void configure(DisplayConfiguration const &) override
Sets a new output configuration.
Definition: nested_display.cpp:181
void pause() override
Pauses the display.
Definition: nested_display.cpp:270
std::function< bool()> DisplayResumeHandler
Definition: display.h:38
EGLContext egl_context() const
Definition: nested_display.cpp:125
EGLint const nested_egl_context_attribs[]
EGLDisplayHandle(MirConnection *connection, std::shared_ptr< GLConfig > const &gl_config)
Definition: nested_display.cpp:62
Definition: nested_display.h:53
std::function< bool()> DisplayPauseHandler
Definition: display.h:35
NestedDisplay(std::shared_ptr< HostConnection > const &connection, std::shared_ptr< input::EventFilter > const &event_handler, std::shared_ptr< DisplayReport > const &display_report, std::shared_ptr< DisplayConfigurationPolicy > const &conf_policy, std::shared_ptr< GLConfig > const &gl_config)
Definition: nested_display.cpp:135
Definition: nested_display.h:66
~EGLSurfaceHandle() noexcept
Definition: nested_display.cpp:57
void for_each_display_buffer(std::function< void(DisplayBuffer &)>const &f) override
Executes a functor for each output framebuffer.
Definition: nested_display.cpp:157
~NestedDisplay() noexcept
Definition: nested_display.cpp:153
EGLConfig choose_windowed_es_config(MirPixelFormat format) const
Definition: nested_display.cpp:91
Definition: mir_connection.h:69
void register_configuration_change_handler(EventHandlerRegister &handlers, DisplayConfigurationChangeHandler const &conf_change_handler) override
Registers a handler for display configuration changes.
Definition: nested_display.cpp:252
std::unique_ptr< graphics::GLContext > create_gl_context() override
Creates a GLContext object that shares resources with the Display's GL context.
Definition: nested_display.cpp:288
std::unique_ptr< DisplayConfiguration > configuration() const override
Gets a copy of the current output configuration.
Definition: nested_display.cpp:164
Interface to the display subsystem.
Definition: display.h:44
std::function< void()> DisplayConfigurationChangeHandler
Definition: display.h:39
Interface to a configuration of display cards and outputs.
Definition: display_configuration.h:159
Definition: event_handler_register.h:31