59
void mcl::PresentationChain::allocate_buffer(
60
geom::Size size, MirPixelFormat format, MirBufferUsage usage,
61
mir_buffer_callback cb, void* cb_context)
63
mir_buffer_factory->expect_buffer(native_buffer_factory, this, size, format, usage, cb, cb_context);
65
mp::BufferAllocation request;
66
request.mutable_id()->set_value(stream_id);
67
auto buffer_request = request.add_buffer_requests();
68
buffer_request->set_width(size.width.as_int());
69
buffer_request->set_height(size.height.as_int());
70
buffer_request->set_pixel_format(format);
71
buffer_request->set_buffer_usage(usage);
73
auto ignored = new mp::Void;
74
server.allocate_buffers(&request, ignored, gp::NewCallback(ignore_response, ignored));
77
59
void mcl::PresentationChain::submit_buffer(MirBuffer* buffer)
79
61
mp::BufferRequest request;
81
63
request.mutable_id()->set_value(stream_id);
82
request.mutable_buffer()->set_buffer_id(reinterpret_cast<mcl::Buffer*>(buffer)->rpc_id());
83
reinterpret_cast<mcl::Buffer*>(buffer)->submitted();
64
request.mutable_buffer()->set_buffer_id(buffer->rpc_id());
86
68
auto ignored = new mp::Void;
87
69
server.submit_buffer(&request, ignored, gp::NewCallback(ignore_response, ignored));
90
void mcl::PresentationChain::release_buffer(MirBuffer* buffer)
92
mp::BufferRelease request;
93
request.mutable_id()->set_value(stream_id);
94
auto buffer_req = request.add_buffers();
95
buffer_req->set_buffer_id(reinterpret_cast<mcl::Buffer*>(buffer)->rpc_id());
97
auto ignored = new mp::Void;
98
server.release_buffers(&request, ignored, gp::NewCallback(ignore_response, ignored));
101
void mcl::PresentationChain::buffer_available(mp::Buffer const&)
105
void mcl::PresentationChain::buffer_unavailable()
109
72
int mcl::PresentationChain::rpc_id() const