20 #ifndef MIR_CLIENT_ANDROID_ANDROID_CLIENT_BUFFER_H_
21 #define MIR_CLIENT_ANDROID_ANDROID_CLIENT_BUFFER_H_
24 #include "../aging_buffer.h"
27 #include <system/window.h>
37 class AndroidClientBuffer :
public AgingBuffer
40 AndroidClientBuffer(std::shared_ptr<AndroidRegistrar>
const&,
41 std::shared_ptr<const native_handle_t>
const&,
43 ~AndroidClientBuffer() noexcept;
45 std::shared_ptr<MemoryRegion> secure_for_cpu_write();
46 geometry::Size
size() const;
49 std::shared_ptr<mir::graphics::
NativeBuffer> native_buffer_handle() const;
51 AndroidClientBuffer(const AndroidClientBuffer&) = delete;
52 AndroidClientBuffer& operator=(const AndroidClientBuffer&) = delete;
54 void pack_native_window_buffer();
56 std::shared_ptr<AndroidRegistrar> buffer_registrar;
57 std::shared_ptr<graphics::android::AndroidNativeBuffer> native_window_buffer;
58 std::shared_ptr<const native_handle_t> native_handle;
60 geometry::
Stride const buffer_stride;
61 geometry::Size const buffer_size;