I'd appreciate some clearer documentation on how these formats map to the display. If my input data is BT2020 PQ, should I map that into RGBA16Float? The maximum value there represents 10,000 nits; what should that be in a Metal texture? Should BT2020 colors simply be matrix-converted to sRGB without clipping, or should I be restricting content to P3 on my end? If MTLPixelFormatRGBA16Float is in linear light, it's not entirely clear if that provides sufficient precision to distinguish all values that a 10-bit integer PQ transfer curve can express. We've sort of had to guess at these things.
Post
Replies
Boosts
Views
Activity
So, how should content that may be beyond the P3 colorspace, but also doesn't come from AVPlayer or related classes, be displayed? And content uses the P3 gamut with the PQ transfer function, how should that be displayed? It seems like AVSampleBufferDisplayLayer is meant to handle these cases, but the documentation remains unclear.
Is there a corresponding API for macOS, or only for mobile and Catalyst apps? The setting appears to exist on Mac, but I don't see any documentation on how to make use of it.
The more significant issue here is that on macOS 15/iOS 18, the shipped version of PingFang is no longer a standards-compliant TTC file, but instead uses a nonstandard "hvgl" table to store glyph data (FB15161959). This means that despite CoreText being used to look up a font for Chinese text, the resulting font file cannot be parsed by cross-platform libraries. This has also been reported to Freetype, but they're unable to make progress without documentation on the new format: https://gitlab.freedesktop.org/freetype/freetype/-/issues/1281