Index: ui/ozone/platform/drm/gpu/drm_display.cc |
diff --git a/ui/ozone/platform/drm/gpu/drm_display.cc b/ui/ozone/platform/drm/gpu/drm_display.cc |
index 076cc59d356302ed9e79a8a47dbaebea13d1e27b..6ff1033cffb24f68b19ce291e92fb64dafec1806 100644 |
--- a/ui/ozone/platform/drm/gpu/drm_display.cc |
+++ b/ui/ozone/platform/drm/gpu/drm_display.cc |
@@ -170,10 +170,21 @@ bool DrmDisplay::SetHDCPState(HDCPState state) { |
GetContentProtectionValue(hdcp_property.get(), state)); |
} |
-void DrmDisplay::SetGammaRamp(const std::vector<GammaRampRGBEntry>& lut) { |
- if (!drm_->SetGammaRamp(crtc_, lut)) { |
- LOG(ERROR) << "Failed to set gamma ramp for display: crtc_id = " << crtc_ |
- << " size = " << lut.size(); |
+void DrmDisplay::SetColorCorrection( |
+ const std::vector<GammaRampRGBEntry>& degamma_lut, |
+ const std::vector<GammaRampRGBEntry>& gamma_lut, |
+ const std::vector<float>& correction_matrix) { |
+ if (degamma_lut.empty()) { |
+ if (!drm_->SetGammaRamp(crtc_, gamma_lut)) { |
+ LOG(ERROR) << "Failed to set gamma ramp for display: crtc_id = " << crtc_ |
+ << " size = " << gamma_lut.size(); |
+ } |
+ } else { |
+ if (!drm_->SetColorCorrection(crtc_, degamma_lut, gamma_lut, |
+ correction_matrix)) { |
+ LOG(ERROR) << "Failed to set color correction for display: crtc_id = " |
+ << crtc_; |
+ } |
} |
} |