| Index: ui/ozone/platform/dri/crtc_controller.h
|
| diff --git a/ui/ozone/platform/dri/crtc_controller.h b/ui/ozone/platform/dri/crtc_controller.h
|
| index 0a422a7370878ffb442c972b72ac81e0b60b4e56..d9e26bc3c8403b12a5b1399057092ef25e4f327c 100644
|
| --- a/ui/ozone/platform/dri/crtc_controller.h
|
| +++ b/ui/ozone/platform/dri/crtc_controller.h
|
| @@ -9,6 +9,8 @@
|
| #include <stdint.h>
|
| #include <xf86drmMode.h>
|
|
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "base/observer_list.h"
|
| #include "ui/ozone/platform/dri/hardware_display_plane_manager.h"
|
| #include "ui/ozone/platform/dri/overlay_plane.h"
|
| #include "ui/ozone/platform/dri/scoped_drm_types.h"
|
| @@ -16,13 +18,14 @@
|
| namespace ui {
|
|
|
| class DriWrapper;
|
| +class PageFlipObserver;
|
|
|
| // Wrapper around a CRTC.
|
| //
|
| // One CRTC can be paired up with one or more connectors. The simplest
|
| // configuration represents one CRTC driving one monitor, while pairing up a
|
| // CRTC with multiple connectors results in hardware mirroring.
|
| -class CrtcController {
|
| +class CrtcController : public base::SupportsWeakPtr<CrtcController> {
|
| public:
|
| CrtcController(DriWrapper* drm, uint32_t crtc, uint32_t connector);
|
| ~CrtcController();
|
| @@ -64,6 +67,9 @@ class CrtcController {
|
| bool UnsetCursor();
|
| bool MoveCursor(const gfx::Point& location);
|
|
|
| + void AddObserver(PageFlipObserver* observer);
|
| + void RemoveObserver(PageFlipObserver* observer);
|
| +
|
| private:
|
| DriWrapper* drm_; // Not owned.
|
|
|
| @@ -97,6 +103,8 @@ class CrtcController {
|
| // The time of the last page flip event as reported by the kernel callback.
|
| uint64_t time_of_last_flip_;
|
|
|
| + ObserverList<PageFlipObserver> observers_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(CrtcController);
|
| };
|
|
|
|
|