Changeset 116456 in webkit
- Timestamp:
- May 8, 2012 2:57:21 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r116453 r116456 1 2012-05-08 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Create LinkHighlightLayerChromium class to provide link-highlight preview animations for GraphicsLayerChromium. 4 https://bugs.webkit.org/show_bug.cgi?id=85084 5 6 Reviewed by James Robinson. 7 8 Unit test provided. 9 10 Creates a layer delegate class to provide link highlight animations for link-preview feature. 11 These are added to a GraphicsLayerChromium via provided methods. Moves dispensing of animation 12 ids into a separate class. 13 14 * WebCore.gypi: 15 * platform/graphics/chromium/AnimationIdVendor.cpp: Added. 16 (WebCore): 17 (WebCore::AnimationIdVendor::getNextAnimationId): 18 (WebCore::AnimationIdVendor::getNextGroupId): 19 * platform/graphics/chromium/AnimationIdVendor.h: Added. 20 (WebCore): 21 (AnimationIdVendor): 22 * platform/graphics/chromium/GraphicsLayerChromium.cpp: 23 (WebCore::GraphicsLayerChromium::willBeDestroyed): 24 (WebCore::GraphicsLayerChromium::updateNames): 25 (WebCore::GraphicsLayerChromium::addAnimation): 26 (WebCore::GraphicsLayerChromium::addLinkHighlight): 27 (WebCore): 28 (WebCore::GraphicsLayerChromium::didFinishLinkHighlight): 29 (WebCore::GraphicsLayerChromium::updateChildList): 30 (WebCore::GraphicsLayerChromium::mapAnimationNameToId): 31 * platform/graphics/chromium/GraphicsLayerChromium.h: 32 (WebCore): 33 (GraphicsLayerChromium): 34 * platform/graphics/chromium/LinkHighlight.cpp: Added. 35 (WebCore): 36 (WebCore::LinkHighlight::create): 37 (WebCore::LinkHighlight::LinkHighlight): 38 (WebCore::LinkHighlight::~LinkHighlight): 39 (WebCore::LinkHighlight::contentLayer): 40 (WebCore::LinkHighlight::paintContents): 41 (WebCore::LinkHighlight::notifyAnimationStarted): 42 (WebCore::LinkHighlight::notifyAnimationFinished): 43 * platform/graphics/chromium/LinkHighlight.h: Added. 44 (WebCore): 45 (LinkHighlight): 46 1 47 2012-05-08 Raphael Kubo da Costa <rakuco@webkit.org> 2 48 -
trunk/Source/WebCore/WebCore.gypi
r116388 r116456 3530 3530 'platform/graphics/cg/PatternCG.cpp', 3531 3531 'platform/graphics/cg/TransformationMatrixCG.cpp', 3532 'platform/graphics/chromium/AnimationIdVendor.cpp', 3533 'platform/graphics/chromium/AnimationIdVendor.h', 3532 3534 'platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp', 3533 3535 'platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h', … … 3579 3581 'platform/graphics/chromium/LayerTextureSubImage.h', 3580 3582 'platform/graphics/chromium/LayerTextureUpdater.h', 3583 'platform/graphics/chromium/LinkHighlight.cpp', 3584 'platform/graphics/chromium/LinkHighlight.h', 3581 3585 'platform/graphics/chromium/ManagedTexture.cpp', 3582 3586 'platform/graphics/chromium/ManagedTexture.h', -
trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
r116342 r116456 46 46 #include "GraphicsLayerChromium.h" 47 47 48 #include "AnimationIdVendor.h" 48 49 #include "Canvas2DLayerChromium.h" 49 50 #include "ContentLayerChromium.h" … … 53 54 #include "ImageLayerChromium.h" 54 55 #include "LayerChromium.h" 56 #include "LinkHighlight.h" 55 57 #include "PlatformString.h" 56 58 #include "SystemTime.h" … … 61 63 62 64 using namespace std; 63 64 namespace {65 static int s_nextGroupId = 1;66 static int s_nextAnimationId = 1;67 }68 65 69 66 namespace WebCore { … … 112 109 } 113 110 111 if (m_linkHighlight) 112 m_linkHighlight.clear(); 113 114 114 GraphicsLayer::willBeDestroyed(); 115 115 } … … 131 131 if (m_contentsLayer) 132 132 m_contentsLayer->setDebugName("ContentsLayer for " + m_nameBase); 133 if (m_linkHighlight) 134 m_linkHighlight->contentLayer()->setDebugName("LinkHighlight for " + m_nameBase); 133 135 } 134 136 … … 408 410 { 409 411 primaryLayer()->setLayerAnimationDelegate(this); 410 return primaryLayer()->addAnimation(values, boxSize, animation, mapAnimationNameToId(animationName), s_nextGroupId++, timeOffset);412 return primaryLayer()->addAnimation(values, boxSize, animation, mapAnimationNameToId(animationName), AnimationIdVendor::getNextGroupId(), timeOffset); 411 413 } 412 414 … … 432 434 { 433 435 primaryLayer()->resumeAnimations(monotonicallyIncreasingTime()); 436 } 437 438 void GraphicsLayerChromium::addLinkHighlight(const Path& path) 439 { 440 m_linkHighlight = LinkHighlight::create(this, path, AnimationIdVendor::LinkHighlightAnimationId, AnimationIdVendor::getNextGroupId()); 441 updateChildList(); 442 } 443 444 void GraphicsLayerChromium::didFinishLinkHighlight() 445 { 446 if (m_linkHighlight) 447 m_linkHighlight->contentLayer()->removeFromParent(); 448 449 m_linkHighlight.clear(); 434 450 } 435 451 … … 514 530 } 515 531 532 if (m_linkHighlight) 533 newChildren.append(m_linkHighlight->contentLayer()); 534 516 535 for (size_t i = 0; i < newChildren.size(); ++i) 517 536 newChildren[i]->removeFromParent(); … … 750 769 751 770 if (!m_animationIdMap.contains(animationName)) 752 m_animationIdMap.add(animationName, s_nextAnimationId++);771 m_animationIdMap.add(animationName, AnimationIdVendor::getNextAnimationId()); 753 772 754 773 return m_animationIdMap.find(animationName)->second; -
trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
r116342 r116456 45 45 46 46 class LayerChromium; 47 class LinkHighlight; 47 48 48 49 class GraphicsLayerChromium : public GraphicsLayer, public ContentLayerDelegate, public CCLayerAnimationDelegate { … … 106 107 virtual void resumeAnimations(); 107 108 109 virtual void addLinkHighlight(const Path&); 110 virtual void didFinishLinkHighlight(); 111 108 112 virtual PlatformLayer* platformLayer() const; 109 113 … … 158 162 RefPtr<LayerChromium> m_transformLayer; 159 163 RefPtr<LayerChromium> m_contentsLayer; 164 RefPtr<LinkHighlight> m_linkHighlight; 160 165 161 166 enum ContentsLayerPurpose { -
trunk/Source/WebKit/chromium/ChangeLog
r116433 r116456 1 2012-05-08 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Create LinkHighlightLayerChromium class to provide link-highlight preview animations for GraphicsLayerChromium. 4 https://bugs.webkit.org/show_bug.cgi?id=85084 5 6 Reviewed by James Robinson. 7 8 * WebKit.gypi: 9 * tests/LinkHighlightTest.cpp: Added. 10 (WebCore): 11 (MockGraphicsLayerClient): 12 (WebCore::MockGraphicsLayerClient::notifyAnimationStarted): 13 (WebCore::MockGraphicsLayerClient::notifySyncRequired): 14 (WebCore::MockGraphicsLayerClient::paintContents): 15 (WebCore::MockGraphicsLayerClient::showDebugBorders): 16 (WebCore::MockGraphicsLayerClient::showRepaintCounter): 17 (WebCore::TEST): 18 1 19 2012-05-08 Tony Chang <tony@chromium.org> 2 20 -
trunk/Source/WebKit/chromium/WebKit.gypi
r116433 r116456 115 115 'tests/LayerTextureUpdaterTest.cpp', 116 116 'tests/LevelDBTest.cpp', 117 'tests/LinkHighlightTest.cpp', 117 118 'tests/LocalizedNumberICUTest.cpp', 118 119 'tests/MockCCQuadCuller.h',
Note: See TracChangeset
for help on using the changeset viewer.