~mir-team/mir/in-process-egl+input-conglomeration

« back to all changes in this revision

Viewing changes to src/client/android/android_client_buffer.cpp

Merged trunk and fixed issues

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
 : creation_package(package),
31
31
   buffer_registrar(registrar),
32
32
   rect({{geom::X(0),geom::Y(0)}, size}),
33
 
   buffer_pf(pf)
 
33
   buffer_pf(pf),
 
34
   native_window_buffer(std::make_shared<ANativeWindowBuffer>())
34
35
{
35
36
    creation_package = std::move(package);
36
37
    native_handle = std::shared_ptr<const native_handle_t> (convert_to_native_handle(creation_package));
45
46
}
46
47
void mcla::AndroidClientBuffer::pack_native_window_buffer()
47
48
{
48
 
    native_window_buffer.height = static_cast<int32_t>(rect.size.height.as_uint32_t());
49
 
    native_window_buffer.width =  static_cast<int32_t>(rect.size.width.as_uint32_t());
50
 
    native_window_buffer.stride = creation_package->stride;
51
 
    native_window_buffer.usage = GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_RENDER;
 
49
    native_window_buffer->height = static_cast<int32_t>(rect.size.height.as_uint32_t());
 
50
    native_window_buffer->width =  static_cast<int32_t>(rect.size.width.as_uint32_t());
 
51
    native_window_buffer->stride = creation_package->stride;
 
52
    native_window_buffer->usage = GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_RENDER;
52
53
 
53
 
    native_window_buffer.handle = native_handle.get();
54
 
    native_window_buffer.common.incRef = &incRef;
55
 
    native_window_buffer.common.decRef = &incRef;
 
54
    native_window_buffer->handle = native_handle.get();
 
55
    native_window_buffer->common.incRef = &incRef;
 
56
    native_window_buffer->common.decRef = &incRef;
56
57
}
57
58
 
58
 
mcla::AndroidClientBuffer::~AndroidClientBuffer()
 
59
mcla::AndroidClientBuffer::~AndroidClientBuffer() noexcept
59
60
{
60
61
    buffer_registrar->unregister_buffer(native_handle.get());
61
62
}
112
113
    return buffer_pf;
113
114
}
114
115
 
115
 
MirNativeBuffer mcla::AndroidClientBuffer::get_native_handle()
116
 
{
117
 
    return &native_window_buffer;
118
 
}
119
 
 
120
 
std::shared_ptr<MirBufferPackage> mcla::AndroidClientBuffer::get_buffer_package() const
121
 
{
122
 
    return creation_package;
 
116
std::shared_ptr<ANativeWindowBuffer> mcla::AndroidClientBuffer::native_buffer_handle() const
 
117
{
 
118
    return native_window_buffer;
123
119
}