18 #ifndef MIR_CLIENT_MIR_SURFACE_H_
19 #define MIR_CLIENT_MIR_SURFACE_H_
21 #include "mir_protobuf.pb.h"
43 class InputReceiverThread;
62 mir::protobuf::DisplayServer::Stub & server,
63 std::shared_ptr<mir::client::ClientBufferFactory>
const& buffer_factory,
64 std::shared_ptr<mir::input::receiver::InputPlatform>
const& input_platform,
99 mutable std::mutex mutex;
101 void on_configured();
102 void process_incoming_buffer();
106 MirPixelFormat convert_ipc_pf_to_geometry(google::protobuf::int32 pf);
107 void release_cpu_region();
109 mir::protobuf::DisplayServer::Stub & server;
110 mir::protobuf::Surface surface;
111 std::string error_message;
118 std::shared_ptr<mir::client::MemoryRegion> secured_region;
119 std::shared_ptr<mir::client::ClientBufferDepository> buffer_depository;
120 std::shared_ptr<mir::input::receiver::InputPlatform>
const input_platform;
122 std::shared_ptr<EGLNativeWindowType> accelerated_window;
124 mir::protobuf::SurfaceSetting configure_result;
129 std::function<void(MirEvent const*)> handle_event_callback;
130 std::shared_ptr<mir::input::receiver::InputReceiverThread> input_thread;
std::shared_ptr< mir::client::ClientBuffer > get_current_buffer()
Definition: mir_surface.cpp:247
MirWaitHandle * release_surface(mir_surface_callback callback, void *context)
Definition: mir_surface.cpp:232
Definition: mir_surface.h:54
Definition: mir_wait_handle.h:31
uint32_t get_current_buffer_id() const
Definition: mir_surface.cpp:254
bool is_valid() const
Definition: mir_surface.cpp:117
int id() const
Definition: mir_surface.cpp:110
void handle_event(MirEvent const &e)
Definition: mir_surface.cpp:379
Definition: mir_native_buffer.h:30
MirWaitHandle * next_buffer(mir_surface_callback callback, void *context)
Definition: mir_surface.cpp:143
MirWaitHandle * configure(MirSurfaceAttrib a, int value)
Definition: mir_surface.cpp:300
void request_and_wait_for_configure(MirSurfaceAttrib a, int value)
Definition: mir_surface.cpp:411
MirSurfaceParameters get_parameters() const
Definition: mir_surface.cpp:86
char const * get_error_message()
Definition: mir_surface.cpp:99
MirWaitHandle * get_create_wait_handle()
Definition: mir_surface.cpp:160
MirEventDelegate may be used to specify (at surface creation time) callbacks for handling of events...
Definition: client_types.h:264
MirNativeBuffer * get_current_buffer_package()
Definition: mir_surface.cpp:239
Definition: mir_client_surface.h:31
MirPlatformType platform_type()
Definition: mir_surface.cpp:398
MirSurface & operator=(MirSurface const &)=delete
~MirSurface()
Definition: mir_surface.cpp:70
Definition: mir_connection.h:69
Retrieved information about a MirSurface.
Definition: client_types.h:164
void request_and_wait_for_next_buffer()
Definition: mir_surface.cpp:406
int attrib(MirSurfaceAttrib a) const
Definition: mir_surface.cpp:346
void set_event_handler(MirEventDelegate const *delegate)
Definition: mir_surface.cpp:353
EGLNativeWindowType generate_native_window()
Definition: mir_surface.cpp:293
MirSurface(MirSurface const &)=delete
void get_cpu_region(MirGraphicsRegion ®ion)
Definition: mir_surface.cpp:124
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:121