19 #ifndef MIR_GRAPHICS_ANDROID_DISPLAY_RESOURCE_FACTORY_H_
20 #define MIR_GRAPHICS_ANDROID_DISPLAY_RESOURCE_FACTORY_H_
22 #include <system/window.h>
23 #include <hardware/hwcomposer.h>
35 class DisplaySupportProvider;
37 class DisplayResourceFactory
40 virtual ~DisplayResourceFactory() =
default;
42 virtual std::shared_ptr<DisplaySupportProvider> create_fb_device()
const = 0;
44 virtual std::shared_ptr<DisplaySupportProvider> create_hwc_1_1(
45 std::shared_ptr<hwc_composer_device_1>
const& hwc_device,
46 std::shared_ptr<DisplaySupportProvider>
const& fb_device)
const = 0;
48 virtual std::shared_ptr<DisplaySupportProvider> create_hwc_1_0(
49 std::shared_ptr<hwc_composer_device_1>
const& hwc_device,
50 std::shared_ptr<DisplaySupportProvider>
const& fb_device)
const = 0;
52 virtual std::shared_ptr<graphics::Display> create_display(
53 std::shared_ptr<DisplaySupportProvider>
const& support_provider,
54 std::shared_ptr<graphics::DisplayReport>
const& report)
const = 0;
57 DisplayResourceFactory() =
default;
58 DisplayResourceFactory& operator=(DisplayResourceFactory
const&) =
delete;
59 DisplayResourceFactory(DisplayResourceFactory
const&) =
delete;