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

Side by Side Diff: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp

Issue 1309393007: [poc] redecode Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: resetColorProfileForTesting rename Created 5 years 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
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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 #include "core/paint/PaintTiming.h" 56 #include "core/paint/PaintTiming.h"
57 #include "core/paint/ScrollableAreaPainter.h" 57 #include "core/paint/ScrollableAreaPainter.h"
58 #include "core/paint/TransformRecorder.h" 58 #include "core/paint/TransformRecorder.h"
59 #include "core/plugins/PluginView.h" 59 #include "core/plugins/PluginView.h"
60 #include "platform/LengthFunctions.h" 60 #include "platform/LengthFunctions.h"
61 #include "platform/RuntimeEnabledFeatures.h" 61 #include "platform/RuntimeEnabledFeatures.h"
62 #include "platform/fonts/FontCache.h" 62 #include "platform/fonts/FontCache.h"
63 #include "platform/geometry/TransformState.h" 63 #include "platform/geometry/TransformState.h"
64 #include "platform/graphics/BitmapImage.h" 64 #include "platform/graphics/BitmapImage.h"
65 #include "platform/graphics/GraphicsContext.h" 65 #include "platform/graphics/GraphicsContext.h"
66 #include "platform/graphics/GraphicsScreen.h"
66 #include "platform/graphics/paint/ClipDisplayItem.h" 67 #include "platform/graphics/paint/ClipDisplayItem.h"
67 #include "platform/graphics/paint/CullRect.h" 68 #include "platform/graphics/paint/CullRect.h"
68 #include "platform/graphics/paint/PaintController.h" 69 #include "platform/graphics/paint/PaintController.h"
69 #include "platform/graphics/paint/TransformDisplayItem.h" 70 #include "platform/graphics/paint/TransformDisplayItem.h"
70 #include "wtf/CurrentTime.h" 71 #include "wtf/CurrentTime.h"
71 #include "wtf/text/StringBuilder.h" 72 #include "wtf/text/StringBuilder.h"
72 73
73 namespace blink { 74 namespace blink {
74 75
75 using namespace HTMLNames; 76 using namespace HTMLNames;
(...skipping 1838 matching lines...) Expand 10 before | Expand all | Expand 10 after
1914 LayoutImage* imageLayoutObject = toLayoutImage(layoutObject()); 1915 LayoutImage* imageLayoutObject = toLayoutImage(layoutObject());
1915 1916
1916 ImageResource* cachedImage = imageLayoutObject->cachedImage(); 1917 ImageResource* cachedImage = imageLayoutObject->cachedImage();
1917 if (!cachedImage) 1918 if (!cachedImage)
1918 return; 1919 return;
1919 1920
1920 Image* image = cachedImage->image(); 1921 Image* image = cachedImage->image();
1921 if (!image) 1922 if (!image)
1922 return; 1923 return;
1923 1924
1925 int64_t previousId = setCurrentScreenId(reinterpret_cast<int64_t>(layoutObje ct()->frame()->page()));
1926
1924 // This is a no-op if the layer doesn't have an inner layer for the image. 1927 // This is a no-op if the layer doesn't have an inner layer for the image.
1925 m_graphicsLayer->setContentsToImage(image, imageLayoutObject->shouldRespectI mageOrientation()); 1928 m_graphicsLayer->setContentsToImage(image, imageLayoutObject->shouldRespectI mageOrientation());
1926 1929
1927 m_graphicsLayer->setFilterQuality(layoutObject()->style()->imageRendering() == ImageRenderingPixelated ? kNone_SkFilterQuality : kLow_SkFilterQuality); 1930 m_graphicsLayer->setFilterQuality(layoutObject()->style()->imageRendering() == ImageRenderingPixelated ? kNone_SkFilterQuality : kLow_SkFilterQuality);
1928 1931
1929 // Prevent double-drawing: https://bugs.webkit.org/show_bug.cgi?id=58632 1932 // Prevent double-drawing: https://bugs.webkit.org/show_bug.cgi?id=58632
1930 updateDrawsContent(); 1933 updateDrawsContent();
1931 1934
1932 // Image animation is "lazy", in that it automatically stops unless someone is drawing 1935 // Image animation is "lazy", in that it automatically stops unless someone is drawing
1933 // the image. So we have to kick the animation each time; this has the downs ide that the 1936 // the image. So we have to kick the animation each time; this has the downs ide that the
1934 // image will keep animating, even if its layer is not visible. 1937 // image will keep animating, even if its layer is not visible.
1935 image->startAnimation(); 1938 image->startAnimation();
1939
1940 setCurrentScreenId(previousId);
1936 } 1941 }
1937 1942
1938 FloatPoint3D CompositedLayerMapping::computeTransformOrigin(const IntRect& borde rBox) const 1943 FloatPoint3D CompositedLayerMapping::computeTransformOrigin(const IntRect& borde rBox) const
1939 { 1944 {
1940 const ComputedStyle& style = layoutObject()->styleRef(); 1945 const ComputedStyle& style = layoutObject()->styleRef();
1941 1946
1942 FloatPoint3D origin; 1947 FloatPoint3D origin;
1943 origin.setX(floatValueForLength(style.transformOriginX(), borderBox.width()) ); 1948 origin.setX(floatValueForLength(style.transformOriginX(), borderBox.width()) );
1944 origin.setY(floatValueForLength(style.transformOriginY(), borderBox.height() )); 1949 origin.setY(floatValueForLength(style.transformOriginY(), borderBox.height() ));
1945 origin.setZ(style.transformOriginZ()); 1950 origin.setZ(style.transformOriginZ());
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
2314 2319
2315 bool CompositedLayerMapping::needsRepaint() const 2320 bool CompositedLayerMapping::needsRepaint() const
2316 { 2321 {
2317 return m_owningLayer.needsRepaint(); 2322 return m_owningLayer.needsRepaint();
2318 } 2323 }
2319 2324
2320 void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, G raphicsContext& context, GraphicsLayerPaintingPhase graphicsLayerPaintingPhase, const IntRect& interestRect) const 2325 void CompositedLayerMapping::paintContents(const GraphicsLayer* graphicsLayer, G raphicsContext& context, GraphicsLayerPaintingPhase graphicsLayerPaintingPhase, const IntRect& interestRect) const
2321 { 2326 {
2322 // https://code.google.com/p/chromium/issues/detail?id=343772 2327 // https://code.google.com/p/chromium/issues/detail?id=343772
2323 DisableCompositingQueryAsserts disabler; 2328 DisableCompositingQueryAsserts disabler;
2329
2330 int64_t previousId = setCurrentScreenId(reinterpret_cast<int64_t>(layoutObje ct()->frame()->page()));
2331
2332 // fprintf(stderr, "CompositedLayerMapping::paintContents begins page %ld\n" , (long int) currentScreenId());
2333 // fflush(stderr);
2334
2324 #if ENABLE(ASSERT) 2335 #if ENABLE(ASSERT)
2325 // FIXME: once the state machine is ready, this can be removed and we can re fer to that instead. 2336 // FIXME: once the state machine is ready, this can be removed and we can re fer to that instead.
2326 if (Page* page = layoutObject()->frame()->page()) 2337 if (Page* page = layoutObject()->frame()->page())
2327 page->setIsPainting(true); 2338 page->setIsPainting(true);
2328 #endif 2339 #endif
2329 2340
2330 TRACE_EVENT1("devtools.timeline", "Paint", "data", InspectorPaintEvent::data (m_owningLayer.layoutObject(), LayoutRect(interestRect), graphicsLayer)); 2341 TRACE_EVENT1("devtools.timeline", "Paint", "data", InspectorPaintEvent::data (m_owningLayer.layoutObject(), LayoutRect(interestRect), graphicsLayer));
2331 2342
2332 PaintLayerFlags paintLayerFlags = 0; 2343 PaintLayerFlags paintLayerFlags = 0;
2333 if (graphicsLayerPaintingPhase & GraphicsLayerPaintBackground) 2344 if (graphicsLayerPaintingPhase & GraphicsLayerPaintBackground)
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2369 } else if (graphicsLayer == layerForHorizontalScrollbar()) { 2380 } else if (graphicsLayer == layerForHorizontalScrollbar()) {
2370 paintScrollbar(m_owningLayer.scrollableArea()->horizontalScrollbar(), co ntext, interestRect); 2381 paintScrollbar(m_owningLayer.scrollableArea()->horizontalScrollbar(), co ntext, interestRect);
2371 } else if (graphicsLayer == layerForVerticalScrollbar()) { 2382 } else if (graphicsLayer == layerForVerticalScrollbar()) {
2372 paintScrollbar(m_owningLayer.scrollableArea()->verticalScrollbar(), cont ext, interestRect); 2383 paintScrollbar(m_owningLayer.scrollableArea()->verticalScrollbar(), cont ext, interestRect);
2373 } else if (graphicsLayer == layerForScrollCorner()) { 2384 } else if (graphicsLayer == layerForScrollCorner()) {
2374 IntPoint scrollCornerAndResizerLocation = m_owningLayer.scrollableArea() ->scrollCornerAndResizerRect().location(); 2385 IntPoint scrollCornerAndResizerLocation = m_owningLayer.scrollableArea() ->scrollCornerAndResizerRect().location();
2375 CullRect cullRect(enclosingIntRect(interestRect)); 2386 CullRect cullRect(enclosingIntRect(interestRect));
2376 ScrollableAreaPainter(*m_owningLayer.scrollableArea()).paintScrollCorner (&context, -scrollCornerAndResizerLocation, cullRect); 2387 ScrollableAreaPainter(*m_owningLayer.scrollableArea()).paintScrollCorner (&context, -scrollCornerAndResizerLocation, cullRect);
2377 ScrollableAreaPainter(*m_owningLayer.scrollableArea()).paintResizer(&con text, -scrollCornerAndResizerLocation, cullRect); 2388 ScrollableAreaPainter(*m_owningLayer.scrollableArea()).paintResizer(&con text, -scrollCornerAndResizerLocation, cullRect);
2378 } 2389 }
2390
2379 InspectorInstrumentation::didPaint(m_owningLayer.layoutObject(), graphicsLay er, &context, LayoutRect(interestRect)); 2391 InspectorInstrumentation::didPaint(m_owningLayer.layoutObject(), graphicsLay er, &context, LayoutRect(interestRect));
2392
2380 #if ENABLE(ASSERT) 2393 #if ENABLE(ASSERT)
2381 if (Page* page = layoutObject()->frame()->page()) 2394 if (Page* page = layoutObject()->frame()->page())
2382 page->setIsPainting(false); 2395 page->setIsPainting(false);
2383 #endif 2396 #endif
2397
2398 // fprintf(stderr, "CompositedLayerMapping::paintContents ends page %ld\n", (long int) currentScreenId());
2399 // fflush(stderr);
2400
2401 setCurrentScreenId(previousId);
2384 } 2402 }
2385 2403
2386 bool CompositedLayerMapping::isTrackingPaintInvalidations() const 2404 bool CompositedLayerMapping::isTrackingPaintInvalidations() const
2387 { 2405 {
2388 GraphicsLayerClient* client = compositor(); 2406 GraphicsLayerClient* client = compositor();
2389 return client ? client->isTrackingPaintInvalidations() : false; 2407 return client ? client->isTrackingPaintInvalidations() : false;
2390 } 2408 }
2391 2409
2392 #if ENABLE(ASSERT) 2410 #if ENABLE(ASSERT)
2393 void CompositedLayerMapping::verifyNotPainting() 2411 void CompositedLayerMapping::verifyNotPainting()
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
2561 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) { 2579 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) {
2562 name = "Scrolling Block Selection Layer"; 2580 name = "Scrolling Block Selection Layer";
2563 } else { 2581 } else {
2564 ASSERT_NOT_REACHED(); 2582 ASSERT_NOT_REACHED();
2565 } 2583 }
2566 2584
2567 return name; 2585 return name;
2568 } 2586 }
2569 2587
2570 } // namespace blink 2588 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698