12012-06-08 David Reveman <reveman@chromium.org>
2
3 [Chromium] Compositor doesn't support translucent root layers.
4 https://bugs.webkit.org/show_bug.cgi?id=87821
5
6 Reviewed by NOBODY (OOPS!).
7
8 Forward the isTransparent WebView setting to WebLayerTreeView,
9 CCLayerTreeHost and CCLayerTreeHostImpl as hasTransparentBackground.
10 Use hasTransparentBackground setting to determine how to clear the
11 root render pass and draw the background. Set opaque flag correctly
12 on the NonCompositedContentHost's graphics layer to make sure
13 sub-pixel rendering is not used with a transparent WebView.
14
15 Unit tests: CCLayerTreeHostImplTest.hasTransparentBackground
16 LayerRendererChromiumTest2.opaqueRenderPass
17 LayerRendererChromiumTest2.transparentRenderPass
18
19 * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
20 (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
21 * platform/graphics/chromium/LayerRendererChromium.cpp:
22 (WebCore::LayerRendererChromium::clearRenderPass):
23 (WebCore::LayerRendererChromium::drawRenderPass):
24 (WebCore::LayerRendererChromium::drawBackgroundFilters):
25 * platform/graphics/chromium/LayerRendererChromium.h:
26 (LayerRendererChromium):
27 * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
28 (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
29 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
30 (WebCore::CCLayerTreeHost::CCLayerTreeHost):
31 (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
32 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
33 (WebCore::CCLayerTreeHost::setHasTransparentBackground):
34 (CCLayerTreeHost):
35 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
36 (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
37 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
38 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
39 (WebCore::CCLayerTreeHostImpl::hasTransparentBackground):
40 (WebCore::CCLayerTreeHostImpl::setHasTransparentBackground):
41 (CCLayerTreeHostImpl):
42 * platform/graphics/chromium/cc/CCRenderPass.cpp:
43 (WebCore::CCRenderPass::CCRenderPass):
44 * platform/graphics/chromium/cc/CCRenderPass.h:
45 (WebCore::CCRenderPass::hasTransparentBackground):
46 (WebCore::CCRenderPass::setHasTransparentBackground):
47 (CCRenderPass):
48