3 Allow PlatformCALayers to specify that they want deep color backing store
4 https://bugs.webkit.org/show_bug.cgi?id=168495
5
6 Reviewed by NOBODY (OOPS!).
7
8 Currently capable iOS devices get deep color backing store by virtue of a supports
9 check in PlatformCALayerCocoa::PlatformCALayerCocoa(), and LegacyTileGridTile.
10
11 Future work will make layer contents format selection more complex, so express the need
12 for deep color on PlatformCALayer, and have the creators of PlatformCALayer (mainly the
13 flavors of GraphicsLayerCA) choose for them to support deep color. A bit of special-casing
14 is needed to propagte the state to TileControllers.
15
16 The deep-colorness now propagates from PlatformCALayerRemote to RemoteLayerBackingStore,
17 instead of RemoteLayerBackingStore looking at the properties of the screen directly.
18
19 Remove PlatformCALayer::LayerTypeWebTiledLayer which was only used for the old CATiledLayers
20 that we no longer use.
21
22 An iphone7 test verifies that page tiles, normal layers and tiled layers get the deep
23 color state set on them.
24
25 Test: tiled-drawing/ios/iphone7/compositing-layers-deep-color.html
26
27 * platform/graphics/ca/GraphicsLayerCA.cpp:
28 (WebCore::GraphicsLayerCA::createPlatformCALayer):
29 (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
30 * platform/graphics/ca/GraphicsLayerCA.h:
31 * platform/graphics/ca/PlatformCALayer.cpp:
32 (WebCore::PlatformCALayer::canHaveBackingStore):
33 (WebCore::operator<<):
34 * platform/graphics/ca/PlatformCALayer.h:
35 * platform/graphics/ca/TileController.cpp:
36 (WebCore::TileController::setZoomedOutContentsScale):
37 (WebCore::TileController::setAcceleratesDrawing):
38 (WebCore::TileController::setWantsDeepColorBackingStore):
39 (WebCore::TileController::createTileLayer):
40 * platform/graphics/ca/TileController.h:
41 * platform/graphics/ca/TileGrid.cpp:
42 (WebCore::TileGrid::updateTileLayerProperties):
43 * platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
44 * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
45 (PlatformCALayerCocoa::PlatformCALayerCocoa):
46 (PlatformCALayerCocoa::commonInit):
47 (PlatformCALayerCocoa::wantsDeepColorBackingStore):
48 (PlatformCALayerCocoa::setWantsDeepColorBackingStore):
49 (layerContentsFormat):
50 (PlatformCALayerCocoa::updateContentsFormat):
51 * platform/graphics/ca/cocoa/WebTiledBackingLayer.h:
52 * platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:
53 (-[WebTiledBackingLayer setWantsDeepColorBackingStore:]):
54 (-[WebTiledBackingLayer wantsDeepColorBackingStore]):
55 * platform/graphics/ca/win/PlatformCALayerWin.cpp:
56 (printLayer):
57
582017-02-16 Simon Fraser <simon.fraser@apple.com>
59