ozone: fix HDPMLegacy - do the PF after overlays, also clear old overlays
[chromium-blink-merge.git] / ui / ozone / platform / dri / overlay_plane.h
blob7e8e1d56220d21c9be3ff323d17891a62f3aae76
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_OZONE_PLATFORM_DRI_OVERLAY_PLANE_H_
6 #define UI_OZONE_PLATFORM_DRI_OVERLAY_PLANE_H_
8 #include <vector>
10 #include "base/memory/ref_counted.h"
11 #include "ui/gfx/geometry/rect.h"
12 #include "ui/gfx/overlay_transform.h"
14 namespace ui {
16 class ScanoutBuffer;
18 struct OverlayPlane;
19 typedef std::vector<OverlayPlane> OverlayPlaneList;
21 struct OverlayPlane {
22 // Simpler constructor for the primary plane.
23 explicit OverlayPlane(scoped_refptr<ScanoutBuffer> buffer);
25 OverlayPlane(scoped_refptr<ScanoutBuffer> buffer,
26 int z_order,
27 gfx::OverlayTransform plane_transform,
28 const gfx::Rect& display_bounds,
29 const gfx::RectF& crop_rect);
31 ~OverlayPlane();
33 // Returns the primary plane in |overlays|.
34 static const OverlayPlane* GetPrimaryPlane(const OverlayPlaneList& overlays);
36 scoped_refptr<ScanoutBuffer> buffer;
37 int z_order;
38 gfx::OverlayTransform plane_transform;
39 gfx::Rect display_bounds;
40 gfx::RectF crop_rect;
43 } // namespace ui
45 #endif // UI_OZONE_PLATFORM_DRI_OVERLAY_PLANE_H_