| OLD | NEW |
| 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 1853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1864 | 1864 |
| 1865 LayoutImage* imageLayoutObject = toLayoutImage(layoutObject); | 1865 LayoutImage* imageLayoutObject = toLayoutImage(layoutObject); |
| 1866 if (ImageResource* cachedImage = imageLayoutObject->cachedImage()) { | 1866 if (ImageResource* cachedImage = imageLayoutObject->cachedImage()) { |
| 1867 if (!cachedImage->hasImage()) | 1867 if (!cachedImage->hasImage()) |
| 1868 return false; | 1868 return false; |
| 1869 | 1869 |
| 1870 Image* image = cachedImage->imageForLayoutObject(imageLayoutObject); | 1870 Image* image = cachedImage->imageForLayoutObject(imageLayoutObject); |
| 1871 if (!image->isBitmapImage()) | 1871 if (!image->isBitmapImage()) |
| 1872 return false; | 1872 return false; |
| 1873 | 1873 |
| 1874 // FIXME: We should be able to handle bitmap images using direct composi
ting | 1874 return true; |
| 1875 // no matter what image-orientation value. See crbug.com/502267 | |
| 1876 if (imageLayoutObject->style()->respectImageOrientation() != RespectImag
eOrientation) | |
| 1877 return true; | |
| 1878 } | 1875 } |
| 1879 | 1876 |
| 1880 return false; | 1877 return false; |
| 1881 } | 1878 } |
| 1882 | 1879 |
| 1883 void CompositedLayerMapping::contentChanged(ContentChangeType changeType) | 1880 void CompositedLayerMapping::contentChanged(ContentChangeType changeType) |
| 1884 { | 1881 { |
| 1885 if ((changeType == ImageChanged) && layoutObject()->isImage() && isDirectlyC
ompositedImage()) { | 1882 if ((changeType == ImageChanged) && layoutObject()->isImage() && isDirectlyC
ompositedImage()) { |
| 1886 updateImageContents(); | 1883 updateImageContents(); |
| 1887 return; | 1884 return; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1900 | 1897 |
| 1901 ImageResource* cachedImage = imageLayoutObject->cachedImage(); | 1898 ImageResource* cachedImage = imageLayoutObject->cachedImage(); |
| 1902 if (!cachedImage) | 1899 if (!cachedImage) |
| 1903 return; | 1900 return; |
| 1904 | 1901 |
| 1905 Image* image = cachedImage->imageForLayoutObject(imageLayoutObject); | 1902 Image* image = cachedImage->imageForLayoutObject(imageLayoutObject); |
| 1906 if (!image) | 1903 if (!image) |
| 1907 return; | 1904 return; |
| 1908 | 1905 |
| 1909 // This is a no-op if the layer doesn't have an inner layer for the image. | 1906 // This is a no-op if the layer doesn't have an inner layer for the image. |
| 1910 m_graphicsLayer->setContentsToImage(image); | 1907 m_graphicsLayer->setContentsToImage(image, imageLayoutObject->shouldRespectI
mageOrientation()); |
| 1911 | 1908 |
| 1912 m_graphicsLayer->setFilterQuality(layoutObject()->style()->imageRendering()
== ImageRenderingPixelated ? kNone_SkFilterQuality : kLow_SkFilterQuality); | 1909 m_graphicsLayer->setFilterQuality(layoutObject()->style()->imageRendering()
== ImageRenderingPixelated ? kNone_SkFilterQuality : kLow_SkFilterQuality); |
| 1913 | 1910 |
| 1914 // Prevent double-drawing: https://bugs.webkit.org/show_bug.cgi?id=58632 | 1911 // Prevent double-drawing: https://bugs.webkit.org/show_bug.cgi?id=58632 |
| 1915 updateDrawsContent(); | 1912 updateDrawsContent(); |
| 1916 | 1913 |
| 1917 // Image animation is "lazy", in that it automatically stops unless someone
is drawing | 1914 // Image animation is "lazy", in that it automatically stops unless someone
is drawing |
| 1918 // the image. So we have to kick the animation each time; this has the downs
ide that the | 1915 // the image. So we have to kick the animation each time; this has the downs
ide that the |
| 1919 // image will keep animating, even if its layer is not visible. | 1916 // image will keep animating, even if its layer is not visible. |
| 1920 image->startAnimation(); | 1917 image->startAnimation(); |
| (...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2394 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) { | 2391 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) { |
| 2395 name = "Scrolling Block Selection Layer"; | 2392 name = "Scrolling Block Selection Layer"; |
| 2396 } else { | 2393 } else { |
| 2397 ASSERT_NOT_REACHED(); | 2394 ASSERT_NOT_REACHED(); |
| 2398 } | 2395 } |
| 2399 | 2396 |
| 2400 return name; | 2397 return name; |
| 2401 } | 2398 } |
| 2402 | 2399 |
| 2403 } // namespace blink | 2400 } // namespace blink |
| OLD | NEW |