951
959
auto rs = std::make_shared<mcl::ErrorRenderSurface>(error_msg, this);
952
960
surface_map->insert(request->native_window.get(), rs);
962
#pragma GCC diagnostic push
963
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
954
964
if (request->callback)
955
965
request->callback(
956
966
static_cast<MirRenderSurface*>(request->native_window.get()),
957
967
request->context);
968
#pragma GCC diagnostic pop
959
970
request->wh->result_received();
1237
1248
return display_configuration->take_snapshot();
1251
#pragma GCC diagnostic push
1252
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
1240
1253
std::shared_ptr<mcl::PresentationChain> MirConnection::create_presentation_chain_with_id(
1241
1254
MirRenderSurface* render_surface,
1242
1255
mir::protobuf::BufferStream const& a_protobuf_bs)
1249
1262
surface_map->insert(render_surface->stream_id(), chain);
1265
#pragma GCC diagnostic pop
1253
1267
void MirConnection::allocate_buffer(
1254
geom::Size size, MirPixelFormat format, MirBufferUsage usage,
1268
geom::Size size, MirPixelFormat format,
1255
1269
MirBufferCallback callback, void* context)
1257
1271
mp::BufferAllocation request;
1260
1274
buffer_request->set_width(size.width.as_int());
1261
1275
buffer_request->set_height(size.height.as_int());
1262
1276
buffer_request->set_pixel_format(format);
1263
buffer_request->set_buffer_usage(usage);
1265
if (!client_buffer_factory)
1266
client_buffer_factory = platform->create_buffer_factory();
1267
buffer_factory->expect_buffer(
1268
client_buffer_factory, this,
1269
size, format, usage,
1277
buffer_request->set_buffer_usage(mir_buffer_usage_software);
1279
if (!client_buffer_factory)
1280
client_buffer_factory = platform->create_buffer_factory();
1281
buffer_factory->expect_buffer(
1282
client_buffer_factory, this,
1283
size, format, mir_buffer_usage_software,
1285
server.allocate_buffers(&request, ignored.get(), gp::NewCallback(ignore));
1288
void MirConnection::allocate_buffer(
1289
geom::Size size, uint32_t native_format, uint32_t native_flags,
1290
MirBufferCallback callback, void* context)
1292
mp::BufferAllocation request;
1293
request.mutable_id()->set_value(-1);
1294
auto buffer_request = request.add_buffer_requests();
1295
buffer_request->set_width(size.width.as_int());
1296
buffer_request->set_height(size.height.as_int());
1297
buffer_request->set_native_format(native_format);
1298
buffer_request->set_flags(native_flags);
1300
if (!client_buffer_factory)
1301
client_buffer_factory = platform->create_buffer_factory();
1302
buffer_factory->expect_buffer(
1303
client_buffer_factory, this,
1304
size, native_format, native_flags,
1270
1305
callback, context);
1271
1306
server.allocate_buffers(&request, ignored.get(), gp::NewCallback(ignore));
1311
1346
google::protobuf::NewCallback(this, &MirConnection::released, stream_release));
1349
#pragma GCC diagnostic push
1350
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
1314
1351
void MirConnection::render_surface_created(RenderSurfaceCreationRequest* request_raw)
1316
1353
std::string static const error_msg = "Error creating MirRenderSurface: ";