2
* Copyright © 2012 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3,
6
* as published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
* Kevin DuBois <kevin.dubois@canonical.com>
20
#ifndef MIR_PLATFORM_ANDROID_ANDROID_BUFFER_ALLOCATOR_H_
21
#define MIR_PLATFORM_ANDROID_ANDROID_BUFFER_ALLOCATOR_H_
23
#include <hardware/hardware.h>
25
#include "mir/graphics/buffer_properties.h"
26
#include "mir/graphics/graphic_buffer_allocator.h"
27
#include "graphic_buffer_allocator.h"
34
class BufferInitializer;
40
class GraphicAllocAdaptor;
42
class AndroidGraphicBufferAllocator: public GraphicBufferAllocator, public graphics::GraphicBufferAllocator
45
AndroidGraphicBufferAllocator(
46
std::shared_ptr<BufferInitializer> const& buffer_initializer);
48
std::shared_ptr<graphics::Buffer> alloc_buffer(
49
graphics::BufferProperties const& buffer_properties);
51
std::shared_ptr<graphics::Buffer> alloc_buffer_platform(
52
geometry::Size sz, MirPixelFormat pf, BufferUsage use);
54
std::vector<MirPixelFormat> supported_pixel_formats();
56
static BufferUsage convert_from_compositor_usage(graphics::BufferUsage usage);
59
const hw_module_t *hw_module;
60
std::shared_ptr<GraphicAllocAdaptor> alloc_device;
61
std::shared_ptr<BufferInitializer> const buffer_initializer;
62
std::shared_ptr<EGLExtensions> const egl_extensions;
68
#endif /* MIR_PLATFORM_ANDROID_ANDROID_BUFFER_ALLOCATOR_H_ */