Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: Source/core/rendering/compositing/CompositedLayerMapping.cpp

Issue 183103007: Implement will-change-based GPU rasterization hint (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Move hint from WebLayer to WebContentLayer Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 m_graphicsLayer = createGraphicsLayer(m_owningLayer.compositingReasons()); 209 m_graphicsLayer = createGraphicsLayer(m_owningLayer.compositingReasons());
210 210
211 #if !OS(ANDROID) 211 #if !OS(ANDROID)
212 if (m_isMainFrameRenderViewLayer) 212 if (m_isMainFrameRenderViewLayer)
213 m_graphicsLayer->contentLayer()->setDrawCheckerboardForMissingTiles(true ); 213 m_graphicsLayer->contentLayer()->setDrawCheckerboardForMissingTiles(true );
214 #endif 214 #endif
215 215
216 updateOpacity(renderer()->style()); 216 updateOpacity(renderer()->style());
217 updateTransform(renderer()->style()); 217 updateTransform(renderer()->style());
218 updateFilters(renderer()->style()); 218 updateFilters(renderer()->style());
219 updateHasGpuRasterizationHint(renderer()->style());
219 220
220 if (RuntimeEnabledFeatures::cssCompositingEnabled()) { 221 if (RuntimeEnabledFeatures::cssCompositingEnabled()) {
221 updateLayerBlendMode(renderer()->style()); 222 updateLayerBlendMode(renderer()->style());
222 updateIsRootForIsolatedGroup(); 223 updateIsRootForIsolatedGroup();
223 } 224 }
224 } 225 }
225 226
226 void CompositedLayerMapping::destroyGraphicsLayers() 227 void CompositedLayerMapping::destroyGraphicsLayers()
227 { 228 {
228 if (m_graphicsLayer) 229 if (m_graphicsLayer)
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 void CompositedLayerMapping::updateIsRootForIsolatedGroup() 287 void CompositedLayerMapping::updateIsRootForIsolatedGroup()
287 { 288 {
288 bool isolate = m_owningLayer.shouldIsolateCompositedDescendants(); 289 bool isolate = m_owningLayer.shouldIsolateCompositedDescendants();
289 290
290 // non stacking context layers should never isolate 291 // non stacking context layers should never isolate
291 ASSERT(m_owningLayer.stackingNode()->isStackingContext() || !isolate); 292 ASSERT(m_owningLayer.stackingNode()->isStackingContext() || !isolate);
292 293
293 m_graphicsLayer->setIsRootForIsolatedGroup(isolate); 294 m_graphicsLayer->setIsRootForIsolatedGroup(isolate);
294 } 295 }
295 296
297 void CompositedLayerMapping::updateHasGpuRasterizationHint(const RenderStyle* st yle)
298 {
299 m_graphicsLayer->setHasGpuRasterizationHint(style->hasWillChangeGpuRasteriza tionHint());
300 }
301
296 void CompositedLayerMapping::updateContentsOpaque() 302 void CompositedLayerMapping::updateContentsOpaque()
297 { 303 {
298 // For non-root layers, background is always painted by the primary graphics layer. 304 // For non-root layers, background is always painted by the primary graphics layer.
299 ASSERT(m_isMainFrameRenderViewLayer || !m_backgroundLayer); 305 ASSERT(m_isMainFrameRenderViewLayer || !m_backgroundLayer);
300 if (m_backgroundLayer) { 306 if (m_backgroundLayer) {
301 m_graphicsLayer->setContentsOpaque(false); 307 m_graphicsLayer->setContentsOpaque(false);
302 m_backgroundLayer->setContentsOpaque(m_owningLayer.backgroundIsKnownToBe OpaqueInRect(compositedBounds())); 308 m_backgroundLayer->setContentsOpaque(m_owningLayer.backgroundIsKnownToBe OpaqueInRect(compositedBounds()));
303 } else { 309 } else {
304 m_graphicsLayer->setContentsOpaque(m_owningLayer.backgroundIsKnownToBeOp aqueInRect(compositedBounds())); 310 m_graphicsLayer->setContentsOpaque(m_owningLayer.backgroundIsKnownToBeOp aqueInRect(compositedBounds()));
305 } 311 }
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
845 851
846 // We can't make this call in RenderLayerCompositor::allocateOrClearComposit edLayerMapping 852 // We can't make this call in RenderLayerCompositor::allocateOrClearComposit edLayerMapping
847 // since it depends on whether compAncestor draws content, which gets update d later. 853 // since it depends on whether compAncestor draws content, which gets update d later.
848 updateRequiresOwnBackingStoreForAncestorReasons(compAncestor); 854 updateRequiresOwnBackingStoreForAncestorReasons(compAncestor);
849 855
850 if (RuntimeEnabledFeatures::cssCompositingEnabled()) { 856 if (RuntimeEnabledFeatures::cssCompositingEnabled()) {
851 updateLayerBlendMode(style); 857 updateLayerBlendMode(style);
852 updateIsRootForIsolatedGroup(); 858 updateIsRootForIsolatedGroup();
853 } 859 }
854 860
861 updateHasGpuRasterizationHint(renderer()->style());
855 updateContentsRect(); 862 updateContentsRect();
856 updateBackgroundColor(); 863 updateBackgroundColor();
857 updateDrawsContent(); 864 updateDrawsContent();
858 updateContentsOpaque(); 865 updateContentsOpaque();
859 updateAfterWidgetResize(); 866 updateAfterWidgetResize();
860 updateRenderingContext(); 867 updateRenderingContext();
861 updateShouldFlattenTransform(); 868 updateShouldFlattenTransform();
862 updateChildrenTransform(); 869 updateChildrenTransform();
863 registerScrollingLayers(); 870 registerScrollingLayers();
864 871
(...skipping 1250 matching lines...) Expand 10 before | Expand all | Expand 10 after
2115 } else if (graphicsLayer == m_scrollingContentsLayer.get()) { 2122 } else if (graphicsLayer == m_scrollingContentsLayer.get()) {
2116 name = "Scrolling Contents Layer"; 2123 name = "Scrolling Contents Layer";
2117 } else { 2124 } else {
2118 ASSERT_NOT_REACHED(); 2125 ASSERT_NOT_REACHED();
2119 } 2126 }
2120 2127
2121 return name; 2128 return name;
2122 } 2129 }
2123 2130
2124 } // namespace WebCore 2131 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698