Revert "Revert "drm_hwcomposer: have DrmDisplayCompositor do its own OpenGL composition""
This reverts commit cbe9c01336e23a63259db65d22d63d6a697b8813.
diff --git a/drmdisplaycomposition.cpp b/drmdisplaycomposition.cpp
index cce1d56..21a9c2a 100644
--- a/drmdisplaycomposition.cpp
+++ b/drmdisplaycomposition.cpp
@@ -112,6 +112,28 @@
return 0;
}
+int DrmDisplayComposition::AddLayer(hwc_layer_1_t *layer, DrmCrtc *crtc,
+ DrmPlane *plane) {
+ if (layer->transform != 0)
+ return -EINVAL;
+
+ if (!validate_composition_type(DRM_COMPOSITION_TYPE_FRAME))
+ return -EINVAL;
+
+ hwc_drm_bo_t bo;
+ int ret = importer_->ImportBuffer(layer->handle, &bo);
+ if (ret) {
+ ALOGE("Failed to import handle of layer %d", ret);
+ return ret;
+ }
+
+ ret = AddLayer(layer, &bo, crtc, plane);
+ if (ret)
+ importer_->ReleaseBuffer(&bo);
+
+ return ret;
+}
+
int DrmDisplayComposition::AddDpmsMode(uint32_t dpms_mode) {
if (!validate_composition_type(DRM_COMPOSITION_TYPE_DPMS))
return -EINVAL;