summaryrefslogtreecommitdiff
path: root/chromium/components/metal_util
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-09-29 16:16:15 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-11-09 10:04:06 +0000
commita95a7417ad456115a1ef2da4bb8320531c0821f1 (patch)
treeedcd59279e486d2fd4a8f88a7ed025bcf925c6e6 /chromium/components/metal_util
parent33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (diff)
downloadqtwebengine-chromium-a95a7417ad456115a1ef2da4bb8320531c0821f1.tar.gz
BASELINE: Update Chromium to 106.0.5249.126
Change-Id: Ib0bb21c437a7d1686e21c33f2d329f2ac425b7ab Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/438936 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/metal_util')
-rw-r--r--chromium/components/metal_util/DEPS2
-rw-r--r--chromium/components/metal_util/hdr_copier_layer.mm29
2 files changed, 28 insertions, 3 deletions
diff --git a/chromium/components/metal_util/DEPS b/chromium/components/metal_util/DEPS
index dceaeaa0079..d88430c4224 100644
--- a/chromium/components/metal_util/DEPS
+++ b/chromium/components/metal_util/DEPS
@@ -1,5 +1,5 @@
include_rules = [
"+components/crash/core/common/crash_key.h",
- "+third_party/skia/include",
+ "+third_party/skia/modules",
"+ui/gfx",
]
diff --git a/chromium/components/metal_util/hdr_copier_layer.mm b/chromium/components/metal_util/hdr_copier_layer.mm
index fe48c854454..d49491d06f6 100644
--- a/chromium/components/metal_util/hdr_copier_layer.mm
+++ b/chromium/components/metal_util/hdr_copier_layer.mm
@@ -14,7 +14,7 @@
#include "base/notreached.h"
#include "base/strings/sys_string_conversions.h"
#include "components/metal_util/device.h"
-#include "third_party/skia/include/third_party/skcms/skcms.h"
+#include "third_party/skia/modules/skcms/skcms.h"
#include "ui/gfx/color_space.h"
namespace {
@@ -146,6 +146,10 @@ MTLPixelFormat IOSurfaceGetMTLPixelFormat(IOSurfaceRef buffer) {
return MTLPixelFormatRGBA16Float;
case kCVPixelFormatType_ARGB2101010LEPacked:
return MTLPixelFormatBGR10A2Unorm;
+ case kCVPixelFormatType_32BGRA:
+ return MTLPixelFormatBGRA8Unorm;
+ case kCVPixelFormatType_32RGBA:
+ return MTLPixelFormatRGBA8Unorm;
default:
break;
}
@@ -207,6 +211,7 @@ API_AVAILABLE(macos(10.15))
API_AVAILABLE(macos(10.15))
@interface HDRCopierLayer : CAMetalLayer {
base::scoped_nsprotocol<id<MTLRenderPipelineState>> _render_pipeline_state;
+ gfx::ColorSpace _color_space;
}
- (id)init;
- (void)setHDRContents:(IOSurfaceRef)buffer
@@ -239,10 +244,30 @@ API_AVAILABLE(macos(10.15))
return;
}
+ // Set metadata for tone mapping.
+ if (_color_space != color_space) {
+ CAEDRMetadata* edr_metadata = nil;
+ switch (color_space.GetTransferID()) {
+ case gfx::ColorSpace::TransferID::PQ:
+ edr_metadata = [CAEDRMetadata HDR10MetadataWithMinLuminance:0
+ maxLuminance:10000
+ opticalOutputScale:100];
+ break;
+ case gfx::ColorSpace::TransferID::HLG:
+ edr_metadata = [CAEDRMetadata HLGMetadata];
+ break;
+ default:
+ [self setEDRMetadata:nil];
+ break;
+ }
+ [self setEDRMetadata:edr_metadata];
+ _color_space = color_space;
+ }
+
// Migrate to the MTLDevice on which the CAMetalLayer is being composited, if
// known.
if ([self respondsToSelector:@selector(preferredDevice)]) {
- id<MTLDevice> preferred_device = nil;
+ id<MTLDevice> preferred_device = [self preferredDevice];
if (preferred_device)
[self setDevice:preferred_device];
}