~robertcarr/mir/fix-intermittent-input-test-race

« back to all changes in this revision

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

android drivers have an interface for the drivers to obtain a strong reference to the native window type. Allow the drivers to acquire this strong reference to the buffer backing their texture/fbo.

Approved by PS Jenkins bot, Robert Ancell.

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
{
39
39
public:
40
40
    AndroidClientBuffer(std::shared_ptr<AndroidRegistrar> const&,
41
 
                        std::shared_ptr<MirBufferPackage> const&,
42
 
                        geometry::Size size, geometry::PixelFormat pf);
 
41
                        std::shared_ptr<const native_handle_t> const&,
 
42
                        geometry::Size size, geometry::PixelFormat pf, geometry::Stride stride);
43
43
    ~AndroidClientBuffer() noexcept;
44
44
 
45
45
    std::shared_ptr<MemoryRegion> secure_for_cpu_write();
52
52
    AndroidClientBuffer& operator=(const AndroidClientBuffer&) = delete;
53
53
private:
54
54
    void pack_native_window_buffer();
55
 
    const native_handle_t* convert_to_native_handle(const std::shared_ptr<MirBufferPackage>& package);
56
55
 
57
 
    std::shared_ptr<MirBufferPackage> creation_package;
 
56
    std::shared_ptr<AndroidRegistrar> buffer_registrar;
 
57
    std::shared_ptr<ANativeWindowBuffer> native_window_buffer;
58
58
    std::shared_ptr<const native_handle_t> native_handle;
59
 
    std::shared_ptr<AndroidRegistrar> buffer_registrar;
60
 
 
61
 
    const geometry::Rectangle rect;
62
59
    const geometry::PixelFormat buffer_pf;
63
 
 
64
 
    std::shared_ptr<ANativeWindowBuffer> native_window_buffer;
 
60
    geometry::Stride const buffer_stride;
65
61
};
66
62
 
67
63
}