~ubuntu-branches/ubuntu/trusty/mir/trusty-proposed

« back to all changes in this revision

Viewing changes to src/platform/graphics/android/display_resource_factory.h

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release, Daniel van Vugt, Ubuntu daily release
  • Date: 2014-01-08 02:04:38 UTC
  • mfrom: (1.1.54)
  • Revision ID: package-import@ubuntu.com-20140108020438-ikbu7qqm9v2l026y
Tags: 0.1.3+14.04.20140108-0ubuntu1
[ Daniel van Vugt ]
* Preparing for release 0.1.3

[ Ubuntu daily release ]
* Automatic snapshot from revision 1170

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright © 2013 Canonical Ltd.
 
3
 *
 
4
 * This program is free software: you can redistribute it and/or modify
 
5
 * it under the terms of the GNU Lesser General Public License version 3 as
 
6
 * published by the Free Software Foundation.
 
7
 *
 
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.
 
12
 *
 
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/>.
 
15
 *
 
16
 * Authored by: Kevin DuBois <kevin.dubois@canonical.com>
 
17
 */
 
18
 
 
19
#ifndef MIR_GRAPHICS_ANDROID_DISPLAY_RESOURCE_FACTORY_H_
 
20
#define MIR_GRAPHICS_ANDROID_DISPLAY_RESOURCE_FACTORY_H_
 
21
 
 
22
#include <system/window.h>
 
23
#include <hardware/hwcomposer.h>
 
24
#include <memory>
 
25
 
 
26
namespace mir
 
27
{
 
28
namespace graphics
 
29
{
 
30
class Display;
 
31
class DisplayReport;
 
32
 
 
33
namespace android
 
34
{
 
35
class DisplayDevice;
 
36
class FramebufferBundle;
 
37
 
 
38
class DisplayResourceFactory
 
39
{
 
40
public:
 
41
    virtual ~DisplayResourceFactory() = default;
 
42
 
 
43
    virtual std::shared_ptr<hwc_composer_device_1> create_hwc_native_device() const = 0;
 
44
    virtual std::shared_ptr<framebuffer_device_t> create_fb_native_device() const = 0;
 
45
 
 
46
    virtual std::shared_ptr<ANativeWindow> create_native_window(
 
47
        std::shared_ptr<FramebufferBundle> const& device) const = 0;
 
48
 
 
49
    virtual std::shared_ptr<DisplayDevice> create_fb_device(
 
50
        std::shared_ptr<framebuffer_device_t> const& fb_native_device) const = 0;
 
51
    virtual std::shared_ptr<DisplayDevice> create_hwc11_device(
 
52
        std::shared_ptr<hwc_composer_device_1> const& hwc_native_device) const = 0;
 
53
    virtual std::shared_ptr<DisplayDevice> create_hwc10_device(
 
54
        std::shared_ptr<hwc_composer_device_1> const& hwc_native_device,
 
55
        std::shared_ptr<framebuffer_device_t> const& fb_native_device) const = 0;
 
56
 
 
57
protected:
 
58
    DisplayResourceFactory() = default;
 
59
    DisplayResourceFactory& operator=(DisplayResourceFactory const&) = delete;
 
60
    DisplayResourceFactory(DisplayResourceFactory const&) = delete;
 
61
};
 
62
 
 
63
}
 
64
}
 
65
}
 
66
 
 
67
#endif /* MIR_GRAPHICS_ANDROID_FRAMEBUFFER_FACTORY_H_ */