Index: ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc |
diff --git a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc |
index 60b335bfaa429bcc04c425c8af45ec900b8b6dce..611edac10351f6f1258216f3549ec17f9ec1a72d 100644 |
--- a/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc |
+++ b/ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc |
@@ -9,6 +9,7 @@ |
#include "base/file_descriptor_posix.h" |
#include "base/files/file.h" |
#include "base/single_thread_task_runner.h" |
+#include "ui/display/types/gamma_ramp_rgb_entry.h" |
#include "ui/display/types/native_display_observer.h" |
#include "ui/events/ozone/device/device_event.h" |
#include "ui/ozone/common/display_util.h" |
@@ -236,6 +237,21 @@ void DrmGpuDisplayManager::RemoveGraphicsDevice(const base::FilePath& path) { |
devices_.erase(it); |
} |
+void DrmGpuDisplayManager::SetGammaRamp( |
+ int64_t id, |
+ const std::vector<GammaRampRGBEntry>& lut) { |
+ DrmDisplaySnapshot* display = FindDisplaySnapshot(id); |
+ if (!display) { |
+ LOG(ERROR) << "There is no display with ID " << id; |
+ return; |
+ } |
+ |
+ if (!display->drm()->SetGammaRamp(display->crtc(), lut)) { |
+ LOG(ERROR) << "Failed to set gamma ramp for display: crtc_id = " |
+ << display->crtc() << " size = " << lut.size(); |
+ } |
+} |
+ |
DrmDisplaySnapshot* DrmGpuDisplayManager::FindDisplaySnapshot(int64_t id) { |
for (size_t i = 0; i < cached_displays_.size(); ++i) |
if (cached_displays_[i]->display_id() == id) |