26
26
namespace mga=mir::graphics::android;
27
27
namespace geom=mir::geometry;
29
mga::HWCLayer& mga::HWCLayer::operator=(HWCLayer const& layer)
31
memcpy(this, &layer, sizeof(HWCLayer));
32
this->visibleRegionScreen = {1, &this->visible_rect};
36
mga::HWCLayer::HWCLayer(HWCLayer const& layer)
38
memcpy(this, &layer, sizeof(HWCLayer));
39
this->visibleRegionScreen = {1, &this->visible_rect};
42
mga::HWCLayer::HWCLayer(int type, buffer_handle_t buffer_handle, int width, int height, int layer_flags)
44
compositionType = type;
48
blending = HWC_BLENDING_NONE;
49
//TODO: acquireFenceFd should be buffer.fence()
54
visible_rect.left = 0;
55
visible_rect.bottom = height;
56
visible_rect.right = width;
57
sourceCrop = visible_rect;
58
displayFrame = visible_rect;
59
visibleRegionScreen.numRects=1;
60
visibleRegionScreen.rects= &visible_rect;
61
handle = buffer_handle;
63
memset(&reserved, 0, sizeof(reserved));
66
mga::FramebufferLayer::FramebufferLayer()
67
: HWCLayer(HWC_FRAMEBUFFER_TARGET, nullptr, 0, 0, 0)
71
mga::FramebufferLayer::FramebufferLayer(mg::NativeBuffer const& buffer)
72
: HWCLayer(HWC_FRAMEBUFFER_TARGET, buffer.handle(),
73
buffer.anwb()->width, buffer.anwb()->height, 0)
77
mga::CompositionLayer::CompositionLayer(int layer_flags)
78
: HWCLayer(HWC_FRAMEBUFFER, nullptr, 0, 0, layer_flags)
82
mga::CompositionLayer::CompositionLayer(mg::NativeBuffer const& buffer, int layer_flags)
83
: HWCLayer(HWC_FRAMEBUFFER, buffer.handle(),
84
buffer.anwb()->width, buffer.anwb()->height, layer_flags)
88
29
mga::LayerList::LayerList(std::initializer_list<HWCLayer> const& layer_list)
90
31
auto struct_size = sizeof(hwc_display_contents_1_t) + sizeof(hwc_layer_1_t)*(layer_list.size());