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

Unified Diff: ui/display/types/native_display_delegate.h

Issue 1285183008: Ozone integration. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: add missing license header Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/display/types/gamma_ramp_rgb_entry.h ('k') | ui/display/util/edid_parser.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/display/types/native_display_delegate.h
diff --git a/ui/display/types/native_display_delegate.h b/ui/display/types/native_display_delegate.h
index 28c70e0be23faeab2bf061b517bda4d6cb5f8cd4..bf59dca8ff0db41081e81006a7647a300be2e800 100644
--- a/ui/display/types/native_display_delegate.h
+++ b/ui/display/types/native_display_delegate.h
@@ -9,6 +9,7 @@
#include <vector>
+#include "base/callback.h"
#include "ui/display/types/display_constants.h"
#include "ui/display/types/display_types_export.h"
@@ -23,8 +24,21 @@ class DisplaySnapshot;
class NativeDisplayObserver;
+struct GammaRampRGBEntry;
+
+typedef base::Callback<void(const std::vector<ui::DisplaySnapshot*>&)>
+ GetDisplaysCallback;
+typedef base::Callback<void(bool)> ConfigureCallback;
+typedef base::Callback<void(bool, ui::HDCPState)> GetHDCPStateCallback;
+typedef base::Callback<void(bool)> SetHDCPStateCallback;
+typedef base::Callback<void(bool)> DisplayControlCallback;
+
// Interface for classes that perform display configuration actions on behalf
// of DisplayConfigurator.
+// Implementations may perform calls asynchronously. In the case of functions
+// taking callbacks, the callbacks may be called asynchronously when the results
+// are available. The implementations must provide a strong guarantee that the
+// callbacks are always called.
class DISPLAY_TYPES_EXPORT NativeDisplayDelegate {
public:
virtual ~NativeDisplayDelegate() {}
@@ -38,6 +52,13 @@ class DISPLAY_TYPES_EXPORT NativeDisplayDelegate {
// Released the display server and any resources allocated by GrabServer().
virtual void UngrabServer() = 0;
+ // Take control of the display from any other controlling process.
+ virtual void TakeDisplayControl(const DisplayControlCallback& callback) = 0;
+
+ // Let others control the display.
+ virtual void RelinquishDisplayControl(
+ const DisplayControlCallback& callback) = 0;
+
// Flushes all pending requests and waits for replies.
virtual void SyncWithServer() = 0;
@@ -47,11 +68,9 @@ class DISPLAY_TYPES_EXPORT NativeDisplayDelegate {
// Enables DPMS and forces it to the "on" state.
virtual void ForceDPMSOn() = 0;
- // Returns information about the current outputs. This method may block for
- // 60 milliseconds or more.
- // NativeDisplayDelegate maintains ownership of the ui::DisplaySnapshot
- // pointers.
- virtual std::vector<ui::DisplaySnapshot*> GetDisplays() = 0;
+ // Queries for a list of fresh displays and returns them via |callback|.
+ // Note the query operation may be expensive and take over 60 milliseconds.
+ virtual void GetDisplays(const GetDisplaysCallback& callback) = 0;
// Adds |mode| to |output|. |mode| must be a valid display mode pointer.
virtual void AddMode(const ui::DisplaySnapshot& output,
@@ -59,21 +78,24 @@ class DISPLAY_TYPES_EXPORT NativeDisplayDelegate {
// Configures the display represented by |output| to use |mode| and positions
// the display to |origin| in the framebuffer. |mode| can be NULL, which
- // represents disabling the display. Returns true on success.
- virtual bool Configure(const ui::DisplaySnapshot& output,
+ // represents disabling the display. The callback will return the status of
+ // the operation.
+ virtual void Configure(const ui::DisplaySnapshot& output,
const ui::DisplayMode* mode,
- const gfx::Point& origin) = 0;
+ const gfx::Point& origin,
+ const ConfigureCallback& callback) = 0;
// Called to set the frame buffer (underlying XRR "screen") size.
virtual void CreateFrameBuffer(const gfx::Size& size) = 0;
// Gets HDCP state of output.
- virtual bool GetHDCPState(const ui::DisplaySnapshot& output,
- ui::HDCPState* state) = 0;
+ virtual void GetHDCPState(const ui::DisplaySnapshot& output,
+ const GetHDCPStateCallback& callback) = 0;
// Sets HDCP state of output.
- virtual bool SetHDCPState(const ui::DisplaySnapshot& output,
- ui::HDCPState state) = 0;
+ virtual void SetHDCPState(const ui::DisplaySnapshot& output,
+ ui::HDCPState state,
+ const SetHDCPStateCallback& callback) = 0;
// Gets the available list of color calibrations.
virtual std::vector<ui::ColorCalibrationProfile>
@@ -85,6 +107,10 @@ class DISPLAY_TYPES_EXPORT NativeDisplayDelegate {
const ui::DisplaySnapshot& output,
ui::ColorCalibrationProfile new_profile) = 0;
+ // Set the gamma ramp for the display.
+ virtual bool SetGammaRamp(const ui::DisplaySnapshot& output,
+ const std::vector<GammaRampRGBEntry>& lut) = 0;
+
virtual void AddObserver(NativeDisplayObserver* observer) = 0;
virtual void RemoveObserver(NativeDisplayObserver* observer) = 0;
« no previous file with comments | « ui/display/types/gamma_ramp_rgb_entry.h ('k') | ui/display/util/edid_parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698