~alan-griffiths/mir/remove-BufferInitializer

« back to all changes in this revision

Viewing changes to src/client/mir_surface.cpp

start using the exchange_buffer rpc to get the buffer for the client. Add some tests where I thought {exchange/next}_buffer had a disparity in test coverage.

Approved by Daniel van Vugt, PS Jenkins bot, Andreas Pokorny.

Show diffs side-by-side

added added

removed removed

Lines of Context:
171
171
{
172
172
    std::unique_lock<decltype(mutex)> lock(mutex);
173
173
    release_cpu_region();
174
 
    auto const id = &surface.id();
175
 
    auto const mutable_buffer = surface.mutable_buffer();
176
 
    perf_report->end_frame(mutable_buffer->buffer_id());
 
174
 
 
175
    *buffer_request.mutable_id() = surface.id();
 
176
    *buffer_request.mutable_buffer() = surface.buffer();
 
177
    perf_report->end_frame(surface.buffer().buffer_id());
177
178
    lock.unlock();
178
179
 
179
180
    next_buffer_wait_handle.expect_result();
180
 
    server.next_buffer(
 
181
    server.exchange_buffer(
181
182
        0,
182
 
        id,
183
 
        mutable_buffer,
 
183
        &buffer_request,
 
184
        surface.mutable_buffer(),
184
185
        google::protobuf::NewCallback(this, &MirSurface::new_buffer, callback, context));
185
186
 
186
187
    return &next_buffer_wait_handle;