18 #ifndef MIR_CLIENT_MIR_SURFACE_H_
19 #define MIR_CLIENT_MIR_SURFACE_H_
35 #include <unordered_set>
44 class InputReceiverThread;
65 std::shared_ptr<mir::client::ClientBufferFactory>
const& buffer_factory,
66 std::shared_ptr<mir::input::receiver::InputPlatform>
const& input_platform,
107 mutable std::mutex mutex;
109 void on_configured();
110 void on_cursor_configured();
111 void process_incoming_buffer();
115 MirPixelFormat convert_ipc_pf_to_geometry(google::protobuf::int32 pf);
116 void release_cpu_region();
120 std::string error_message;
129 std::shared_ptr<mir::client::MemoryRegion> secured_region;
130 std::shared_ptr<mir::client::ClientBufferDepository> buffer_depository;
131 std::shared_ptr<mir::input::receiver::InputPlatform>
const input_platform;
133 std::shared_ptr<EGLNativeWindowType> accelerated_window;
141 std::function<void(MirEvent const*)> handle_event_callback;
142 std::shared_ptr<mir::input::receiver::InputReceiverThread> input_thread;
143 std::shared_ptr<mir::client::PerfReport> perf_report;
std::shared_ptr< mir::client::ClientBuffer > get_current_buffer()
Definition: mir_surface.cpp:288
Definition: mir_protobuf.pb.h:1453
MirWaitHandle * release_surface(mir_surface_callback callback, void *context)
Definition: mir_surface.cpp:268
All things Mir.
Definition: aging_buffer.h:24
Definition: mir_surface.h:56
Definition: mir_wait_handle.h:31
Definition: mir_protobuf.pb.h:3348
uint32_t get_current_buffer_id() const
Definition: mir_surface.cpp:295
int id() const
Definition: mir_surface.cpp:134
void handle_event(MirEvent const &e)
Definition: mir_surface.cpp:445
Definition: mir_native_buffer.h:30
MirWaitHandle * next_buffer(mir_surface_callback callback, void *context)
Definition: mir_surface.cpp:170
MirWaitHandle * configure(MirSurfaceAttrib a, int value)
Definition: mir_surface.cpp:359
void request_and_wait_for_configure(MirSurfaceAttrib a, int value)
Definition: mir_surface.cpp:487
static bool is_valid(MirSurface *query)
Definition: mir_surface.cpp:141
MirSurfaceParameters get_parameters() const
Definition: mir_surface.cpp:110
char const * get_error_message()
Definition: mir_surface.cpp:123
MirWaitHandle * get_create_wait_handle()
Definition: mir_surface.cpp:189
MirEventDelegate may be used to specify (at surface creation time) callbacks for handling of events...
Definition: client_types.h:278
MirNativeBuffer * get_current_buffer_package()
Definition: mir_surface.cpp:280
Definition: mir_client_surface.h:31
Definition: mir_protobuf.pb.h:1834
mir_orientation_normal
Definition: display_configuration.cpp:33
Definition: mir_protobuf.pb.h:1921
MirPlatformType platform_type()
Definition: mir_surface.cpp:474
MirOrientation get_orientation() const
Definition: mir_surface.cpp:492
Definition: cursor_configuration.h:26
MirSurface & operator=(MirSurface const &)=delete
MirWaitHandle * configure_cursor(MirCursorConfiguration const *cursor)
Definition: mir_surface.cpp:341
~MirSurface()
Definition: mir_surface.cpp:89
Definition: mir_connection.h:72
Retrieved information about a MirSurface.
Definition: client_types.h:178
void request_and_wait_for_next_buffer()
Definition: mir_surface.cpp:482
int attrib(MirSurfaceAttrib a) const
Definition: mir_surface.cpp:412
void set_event_handler(MirEventDelegate const *delegate)
Definition: mir_surface.cpp:419
EGLNativeWindowType generate_native_window()
Definition: mir_surface.cpp:334
MirSurface(MirSurface const &)=delete
void get_cpu_region(MirGraphicsRegion ®ion)
Definition: mir_surface.cpp:151
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:135