Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: ui/ozone/platform/dri/screen_manager.h

Issue 844343002: [Ozone-DRI] Add display observer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update GYP Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_OZONE_PLATFORM_DRI_SCREEN_MANAGER_H_ 5 #ifndef UI_OZONE_PLATFORM_DRI_SCREEN_MANAGER_H_
6 #define UI_OZONE_PLATFORM_DRI_SCREEN_MANAGER_H_ 6 #define UI_OZONE_PLATFORM_DRI_SCREEN_MANAGER_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/observer_list.h"
11 #include "ui/ozone/platform/dri/display_change_observer.h"
11 #include "ui/ozone/platform/dri/hardware_display_controller.h" 12 #include "ui/ozone/platform/dri/hardware_display_controller.h"
12 13
13 typedef struct _drmModeModeInfo drmModeModeInfo; 14 typedef struct _drmModeModeInfo drmModeModeInfo;
14 15
15 namespace gfx { 16 namespace gfx {
16 class Point; 17 class Point;
17 class Rect; 18 class Rect;
18 class Size; 19 class Size;
19 } // namespace gfx 20 } // namespace gfx
20 21
(...skipping 21 matching lines...) Expand all
42 bool ConfigureDisplayController(uint32_t crtc, 43 bool ConfigureDisplayController(uint32_t crtc,
43 uint32_t connector, 44 uint32_t connector,
44 const gfx::Point& origin, 45 const gfx::Point& origin,
45 const drmModeModeInfo& mode); 46 const drmModeModeInfo& mode);
46 47
47 // Disable the display controller identified by |crtc|. Note, the controller 48 // Disable the display controller identified by |crtc|. Note, the controller
48 // may still be connected, so this does not remove the controller. 49 // may still be connected, so this does not remove the controller.
49 bool DisableDisplayController(uint32_t crtc); 50 bool DisableDisplayController(uint32_t crtc);
50 51
51 // Returns a reference to the display controller configured to display within 52 // Returns a reference to the display controller configured to display within
52 // |bounds|. 53 // |bounds|. If the caller caches the controller it must also register as an
53 // This returns a weak reference since the display controller may be destroyed 54 // observer to be notified when the controller goes out of scope.
54 // at any point in time, but the changes are propagated to the compositor much 55 HardwareDisplayController* GetDisplayController(const gfx::Rect& bounds);
55 // later (Compositor owns SurfaceOzone*, which is responsible for updating the 56
56 // display surface). 57 void AddObserver(DisplayChangeObserver* observer);
57 base::WeakPtr<HardwareDisplayController> GetDisplayController( 58 void RemoveObserver(DisplayChangeObserver* observer);
58 const gfx::Rect& bounds);
59 59
60 // On non CrOS builds there is no display configurator to look-up available 60 // On non CrOS builds there is no display configurator to look-up available
61 // displays and initialize the HDCs. In such cases this is called internally 61 // displays and initialize the HDCs. In such cases this is called internally
62 // to initialize a display. 62 // to initialize a display.
63 virtual void ForceInitializationOfPrimaryDisplay(); 63 virtual void ForceInitializationOfPrimaryDisplay();
64 64
65 private: 65 private:
66 typedef ScopedVector<HardwareDisplayController> HardwareDisplayControllers; 66 typedef ScopedVector<HardwareDisplayController> HardwareDisplayControllers;
67 67
68 // Returns an iterator into |controllers_| for the controller identified by 68 // Returns an iterator into |controllers_| for the controller identified by
(...skipping 16 matching lines...) Expand all
85 bool HandleMirrorMode(HardwareDisplayControllers::iterator original, 85 bool HandleMirrorMode(HardwareDisplayControllers::iterator original,
86 HardwareDisplayControllers::iterator mirror, 86 HardwareDisplayControllers::iterator mirror,
87 uint32_t crtc, 87 uint32_t crtc,
88 uint32_t connector); 88 uint32_t connector);
89 89
90 DriWrapper* dri_; // Not owned. 90 DriWrapper* dri_; // Not owned.
91 ScanoutBufferGenerator* buffer_generator_; // Not owned. 91 ScanoutBufferGenerator* buffer_generator_; // Not owned.
92 // List of display controllers (active and disabled). 92 // List of display controllers (active and disabled).
93 HardwareDisplayControllers controllers_; 93 HardwareDisplayControllers controllers_;
94 94
95 ObserverList<DisplayChangeObserver> observers_;
96
95 DISALLOW_COPY_AND_ASSIGN(ScreenManager); 97 DISALLOW_COPY_AND_ASSIGN(ScreenManager);
96 }; 98 };
97 99
98 } // namespace ui 100 } // namespace ui
99 101
100 #endif // UI_OZONE_PLATFORM_DRI_SCREEN_MANAGER_H_ 102 #endif // UI_OZONE_PLATFORM_DRI_SCREEN_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698