Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / ui / ozone / platform / drm / gpu / hardware_display_plane_atomic.h
blobf89c119a82d9f8a5edfa1b154782dcbc2cbcb954
1 // Copyright 2015 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_DRM_GPU_HARDWARE_DISPLAY_PLANE_ATOMIC_H_
6 #define UI_OZONE_PLATFORM_DRM_GPU_HARDWARE_DISPLAY_PLANE_ATOMIC_H_
8 #include "ui/ozone/platform/drm/gpu/hardware_display_plane.h"
10 #include <xf86drmMode.h>
12 namespace ui {
14 class CrtcController;
15 class DrmDevice;
17 class HardwareDisplayPlaneAtomic : public HardwareDisplayPlane {
18 public:
19 HardwareDisplayPlaneAtomic(uint32_t plane_id, uint32_t possible_crtcs);
20 ~HardwareDisplayPlaneAtomic() override;
22 bool SetPlaneData(drmModePropertySet* property_set,
23 uint32_t crtc_id,
24 uint32_t framebuffer,
25 const gfx::Rect& crtc_rect,
26 const gfx::Rect& src_rect);
28 // HardwareDisplayPlane:
29 bool Initialize(DrmDevice* drm) override;
31 void set_crtc(CrtcController* crtc) { crtc_ = crtc; }
32 CrtcController* crtc() const { return crtc_; }
34 private:
35 struct Property {
36 Property();
37 bool Initialize(DrmDevice* drm,
38 const char* name,
39 const ScopedDrmObjectPropertyPtr& plane_properties);
40 uint32_t id = 0;
43 Property crtc_prop_;
44 Property fb_prop_;
45 Property crtc_x_prop_;
46 Property crtc_y_prop_;
47 Property crtc_w_prop_;
48 Property crtc_h_prop_;
49 Property src_x_prop_;
50 Property src_y_prop_;
51 Property src_w_prop_;
52 Property src_h_prop_;
53 CrtcController* crtc_ = nullptr;
56 } // namespace ui
58 #endif // UI_OZONE_PLATFORM_DRM_GPU_HARDWARE_DISPLAY_PLANE_ATOMIC_H_