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. 4 5 #ifndef UI_OZONE_PLATFORM_DRI_HARDWARE_DISPLAY_PLANE_MANAGER_H_ 6 #define UI_OZONE_PLATFORM_DRI_HARDWARE_DISPLAY_PLANE_MANAGER_H_ 7 8 #include <stddef.h> 9 #include <stdint.h> 10 #include <xf86drmMode.h> 11 #include <vector> 12 13 #include "base/basictypes.h" 14 #include "base/memory/scoped_vector.h" 15 #include "ui/ozone/platform/dri/hardware_display_plane.h" 16 #include "ui/ozone/platform/dri/scoped_drm_types.h" 17 18 namespace gfx { 19 class Rect; 20 } // namespace gfx 21 22 namespace ui { 23 24 class DriWrapper; 25 26 class HardwareDisplayPlaneManager { 27 public: 28 HardwareDisplayPlaneManager(DriWrapper* drm); 29 30 ~HardwareDisplayPlaneManager(); 31 32 bool Initialize(); 33 34 const ScopedVector<HardwareDisplayPlane>& get_planes() { return planes_; } 35 36 private: 37 // Object containing the connection to the graphics device and wraps the API 38 // calls to control it. 39 DriWrapper* drm_; 40 41 drmModePropertySetPtr property_set_; 42 ScopedVector<HardwareDisplayPlane> planes_; 43 44 DISALLOW_COPY_AND_ASSIGN(HardwareDisplayPlaneManager); 45 }; 46 47 } // namespace ui 48 49 #endif // UI_OZONE_PLATFORM_DRI_HARDWARE_DISPLAY_PLANE_MANAGER_H_ 50