When doing flattening of a composition on a different CRTC we need to be able to clone a layer in order to import it and then pass it to another CRTC. Signed-off-by: Alexandru Gheorghe <alexandru-cosmin.gheorghe@xxxxxxx> --- drmhwcomposer.h | 1 + hwcutils.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/drmhwcomposer.h b/drmhwcomposer.h index f8440fb..b256caf 100644 --- a/drmhwcomposer.h +++ b/drmhwcomposer.h @@ -150,6 +150,7 @@ struct DrmHwcLayer { int InitFromHwcLayer(hwc_layer_1_t *sf_layer, Importer *importer, const gralloc_module_t *gralloc); + int PopulateFromDrmHwcLayer(DrmHwcLayer *layer); int ImportBuffer(Importer *importer, const gralloc_module_t *gralloc); void SetTransform(int32_t sf_transform); diff --git a/hwcutils.cpp b/hwcutils.cpp index 53a7d82..ff37c3b 100644 --- a/hwcutils.cpp +++ b/hwcutils.cpp @@ -149,6 +149,17 @@ int DrmHwcLayer::InitFromHwcLayer(hwc_layer_1_t *sf_layer, Importer *importer, return ImportBuffer(importer, gralloc); } +int DrmHwcLayer::PopulateFromDrmHwcLayer(DrmHwcLayer *src_layer) { + blending = src_layer->blending; + sf_handle = src_layer->sf_handle; + acquire_fence = dup(src_layer->acquire_fence.get()); + display_frame = src_layer->display_frame; + alpha = src_layer->alpha; + source_crop = src_layer->source_crop; + transform = src_layer->transform; + return 0; +} + int DrmHwcLayer::ImportBuffer(Importer *importer, const gralloc_module_t *gralloc) { int ret = buffer.ImportBuffer(sf_handle, importer); -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel