X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=drmcomposition.h;h=ee2e2585e01b30451ce3e8889f80a46339956b0a;hb=8d63e7fde00f5830480cd2225954f70e6b681d8b;hp=06af71d7932a1a4e462a812793a87e955108b1ba;hpb=4c645f06828f522056147c3582e89dc46d9f685a;p=android-x86%2Fexternal-drm_hwcomposer.git diff --git a/drmcomposition.h b/drmcomposition.h index 06af71d..ee2e258 100644 --- a/drmcomposition.h +++ b/drmcomposition.h @@ -17,7 +17,6 @@ #ifndef ANDROID_DRM_COMPOSITION_H_ #define ANDROID_DRM_COMPOSITION_H_ -#include "compositor.h" #include "drm_hwcomposer.h" #include "drmdisplaycomposition.h" #include "drmplane.h" @@ -32,21 +31,26 @@ namespace android { -class DrmComposition : public Composition { +struct DrmCompositionDisplayLayersMap { + int display; + size_t num_layers; + hwc_layer_1_t *layers; + size_t *layer_indices; +}; + +class DrmComposition { public: DrmComposition(DrmResources *drm, Importer *importer); - ~DrmComposition(); - - virtual int Init(); - virtual unsigned GetRemainingLayers(int display, unsigned num_needed) const; - virtual int AddLayer(int display, hwc_layer_1_t *layer, hwc_drm_bo_t *bo); - int AddDpmsMode(int display, uint32_t dpms_mode); + int Init(); - int DisableUnusedPlanes(); + int SetLayers(size_t num_displays, + const DrmCompositionDisplayLayersMap *maps); + int SetDpmsMode(int display, uint32_t dpms_mode); std::unique_ptr TakeDisplayComposition(int display); DrmDisplayComposition *GetDisplayComposition(int display); + int DisableUnusedPlanes(); private: DrmComposition(const DrmComposition &) = delete; @@ -63,7 +67,6 @@ class DrmComposition : public Composition { */ std::map> composition_map_; }; - } #endif // ANDROID_DRM_COMPOSITION_H_