diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-09-29 16:16:15 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-11-09 10:04:06 +0000 |
commit | a95a7417ad456115a1ef2da4bb8320531c0821f1 (patch) | |
tree | edcd59279e486d2fd4a8f88a7ed025bcf925c6e6 /chromium/components/metal_util | |
parent | 33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (diff) | |
download | qtwebengine-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/DEPS | 2 | ||||
-rw-r--r-- | chromium/components/metal_util/hdr_copier_layer.mm | 29 |
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]; } |