Home | History | Annotate | Download | only in dri
      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