Changeset 94789 in webkit
- Timestamp:
- Sep 8, 2011 1:31:02 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r94788 r94789 1 2011-09-08 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation. 4 https://bugs.webkit.org/show_bug.cgi?id=66472 5 6 Initial tests for zoomAnimatorChromium backend. 7 8 Reviewed by James Robinson. 9 10 * platform/chromium-gpu-linux/platform/chromium/compositing/zoom-animator-scale-test-expected.png: Added. 11 * platform/chromium-gpu-linux/platform/chromium/compositing/zoom-animator-scale-test-expected.txt: Added. 12 * platform/chromium/compositing/zoom-animator-scale-test.html: Added. 13 1 14 2011-09-08 Csaba Osztrogonác <ossy@webkit.org> 2 15 -
trunk/Source/WebCore/ChangeLog
r94787 r94789 1 2011-09-08 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation. 4 https://bugs.webkit.org/show_bug.cgi?id=66472 5 6 This patch contains plumbing from Internals to WebViewImpl that can be removed 7 at a later time when the zoom animator code is complete. 8 9 Reviewed by James Robinson. 10 11 Test: platform/chromium/compositing/zoom-animator-scale-test.html 12 13 * page/Settings.cpp: 14 (WebCore::Settings::Settings): 15 * page/Settings.h: 16 (WebCore::Settings::setZoomAnimatorScale): 17 (WebCore::Settings::zoomAnimatorScale): 18 * platform/graphics/chromium/LayerRendererChromium.cpp: 19 (WebCore::LayerRendererChromium::LayerRendererChromium): 20 (WebCore::LayerRendererChromium::drawLayersInternal): 21 * platform/graphics/chromium/LayerRendererChromium.h: 22 (WebCore::LayerRendererChromium::setZoomAnimatorScale): 23 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: 24 (WebCore::CCLayerTreeHost::CCLayerTreeHost): 25 (WebCore::CCLayerTreeHost::commitTo): 26 (WebCore::CCLayerTreeHost::setZoomAnimatorScale): 27 (WebCore::CCLayerTreeHost::updateLayers): 28 * platform/graphics/chromium/cc/CCLayerTreeHost.h: 29 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: 30 (WebCore::CCLayerTreeHostImpl::setZoomAnimatorScale): 31 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: 32 * testing/Internals.cpp: 33 (WebCore::Internals::setZoomAnimatorScale): 34 * testing/Internals.h: 35 * testing/Internals.idl: 36 1 37 2011-09-08 Eric Carlson <eric.carlson@apple.com> 2 38 -
trunk/Source/WebCore/page/Settings.cpp
r94214 r94789 217 217 , m_passwordEchoEnabled(false) 218 218 , m_loadsImagesAutomaticallyTimer(this, &Settings::loadsImagesAutomaticallyTimerFired) 219 , m_zoomAnimatorScale(1) 219 220 { 220 221 // A Frame may not have been created yet, so we initialize the AtomicString -
trunk/Source/WebCore/page/Settings.h
r93291 r94789 438 438 void setForceCompositingMode(bool flag) { m_forceCompositingMode = flag; } 439 439 bool forceCompositingMode() { return m_forceCompositingMode; } 440 440 441 void setZoomAnimatorScale(double scale) { m_zoomAnimatorScale = scale; } 442 double zoomAnimatorScale() { return m_zoomAnimatorScale; } 443 441 444 void setShouldInjectUserScriptsInInitialEmptyDocument(bool flag) { m_shouldInjectUserScriptsInInitialEmptyDocument = flag; } 442 445 bool shouldInjectUserScriptsInInitialEmptyDocument() { return m_shouldInjectUserScriptsInInitialEmptyDocument; } … … 597 600 #endif 598 601 602 double m_zoomAnimatorScale; 603 599 604 #if USE(SAFARI_THEME) 600 605 static bool gShouldPaintNativeControls; -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
r94703 r94789 164 164 , m_currentRenderSurface(0) 165 165 , m_offscreenFramebufferId(0) 166 , m_zoomAnimatorScale(1) 166 167 , m_context(context) 167 168 , m_defaultRenderSurface(0) … … 295 296 renderSurfaceLayerList.append(rootDrawLayer); 296 297 297 TransformationMatrix identityMatrix; 298 TransformationMatrix zoomMatrix; 299 zoomMatrix.scale3d(m_zoomAnimatorScale, m_zoomAnimatorScale, 1); 298 300 m_defaultRenderSurface = rootDrawLayer->renderSurface(); 299 301 m_defaultRenderSurface->clearLayerList(); … … 301 303 { 302 304 TRACE_EVENT("LayerRendererChromium::drawLayersInternal::calcDrawEtc", this, 0); 303 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootDrawLayer, rootDrawLayer, identityMatrix, identityMatrix, renderSurfaceLayerList, m_defaultRenderSurface->layerList(), &m_layerSorter, m_capabilities.maxTextureSize);305 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootDrawLayer, rootDrawLayer, zoomMatrix, zoomMatrix, renderSurfaceLayerList, m_defaultRenderSurface->layerList(), &m_layerSorter, m_capabilities.maxTextureSize); 304 306 } 305 307 -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h
r94703 r94789 111 111 void present(); 112 112 113 void setZoomAnimatorScale(double factor) { m_zoomAnimatorScale = factor; } 114 113 115 unsigned createLayerTexture(); 114 116 void deleteLayerTexture(unsigned); … … 197 199 CCRenderSurface* m_currentRenderSurface; 198 200 unsigned m_offscreenFramebufferId; 201 double m_zoomAnimatorScale; 199 202 200 203 // Store values that are shared between instances of each layer type -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
r94474 r94789 55 55 , m_nonCompositedContentHost(NonCompositedContentHost::create(m_client->createRootLayerPainter())) 56 56 , m_settings(settings) 57 , m_zoomAnimatorScale(1) 57 58 , m_visible(true) 58 59 { … … 116 117 117 118 hostImpl->setVisible(m_visible); 119 hostImpl->setZoomAnimatorScale(m_zoomAnimatorScale); 118 120 hostImpl->setViewport(viewportSize()); 119 121 … … 181 183 { 182 184 return m_proxy->layerRendererCapabilities(); 185 } 186 187 void CCLayerTreeHost::setZoomAnimatorScale(double zoom) 188 { 189 bool zoomChanged = m_zoomAnimatorScale != zoom; 190 191 m_zoomAnimatorScale = zoom; 192 193 if (zoomChanged) 194 setNeedsCommitAndRedraw(); 183 195 } 184 196 … … 279 291 rootRenderSurface->clearLayerList(); 280 292 281 TransformationMatrix identityMatrix;282 293 TransformationMatrix zoomMatrix; 294 zoomMatrix.scale3d(m_zoomAnimatorScale, m_zoomAnimatorScale, 1); 283 295 { 284 296 TRACE_EVENT("CCLayerTreeHost::updateLayers::calcDrawEtc", this, 0); 285 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootLayer, rootLayer, identityMatrix, identityMatrix, m_updateList, rootRenderSurface->layerList(), layerRendererCapabilities().maxTextureSize);297 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootLayer, rootLayer, zoomMatrix, zoomMatrix, m_updateList, rootRenderSurface->layerList(), layerRendererCapabilities().maxTextureSize); 286 298 } 287 299 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
r94474 r94789 131 131 132 132 void invalidateRootLayerRect(const IntRect& dirtyRect); 133 void setZoomAnimatorScale(double); 133 134 134 135 const LayerRendererCapabilities& layerRendererCapabilities() const; … … 188 189 189 190 IntSize m_viewportSize; 191 double m_zoomAnimatorScale; 190 192 bool m_visible; 191 193 }; -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
r94474 r94789 156 156 } 157 157 158 void CCLayerTreeHostImpl::setZoomAnimatorScale(double zoom) 159 { 160 m_layerRenderer->setZoomAnimatorScale(zoom); 158 161 } 162 163 } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h
r94474 r94789 76 76 void setViewport(const IntSize& viewportSize); 77 77 const IntSize& viewportSize() const { return m_viewportSize; } 78 void setZoomAnimatorScale(double); 78 79 79 80 protected: -
trunk/Source/WebCore/testing/Internals.cpp
r94705 r94789 244 244 } 245 245 246 void Internals::setZoomAnimatorScale(Document *document, double scale, ExceptionCode& ec) 247 { 248 if (!document || !document->settings()) { 249 ec = INVALID_ACCESS_ERR; 250 return; 251 } 252 253 document->settings()->setZoomAnimatorScale(scale); 254 } 255 246 256 void Internals::setPasswordEchoEnabled(Document* document, bool enabled, ExceptionCode& ec) 247 257 { -
trunk/Source/WebCore/testing/Internals.h
r94705 r94789 78 78 79 79 void setForceCompositingMode(Document*, bool enabled, ExceptionCode&); 80 void setZoomAnimatorScale(Document*, double scale, ExceptionCode&); 80 81 81 82 void setPasswordEchoEnabled(Document*, bool enabled, ExceptionCode&); -
trunk/Source/WebCore/testing/Internals.idl
r94705 r94789 52 52 53 53 void setForceCompositingMode(in Document document, in boolean enabled) raises(DOMException); 54 void setZoomAnimatorScale(in Document document, in double scale) raises(DOMException); 54 55 55 56 void setPasswordEchoEnabled(in Document document, in boolean enabled) raises(DOMException); -
trunk/Source/WebKit/chromium/ChangeLog
r94786 r94789 1 2011-09-08 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation. 4 https://bugs.webkit.org/show_bug.cgi?id=66472 5 6 This patch contains plumbing from Internals to WebViewImpl that can be removed 7 at a later time when the zoom animator code is complete. 8 9 Reviewed by James Robinson. 10 11 * src/WebViewImpl.cpp: 12 (WebKit::WebViewImpl::setZoomLevel): 13 (WebKit::WebViewImpl::setRootLayerNeedsDisplay): 14 1 15 2011-09-08 Scott Byer <scottbyer@chromium.org> 2 16 -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r94459 r94789 1824 1824 double WebViewImpl::setZoomLevel(bool textOnly, double zoomLevel) 1825 1825 { 1826 if (m_layerTreeHost) 1827 m_layerTreeHost->setZoomAnimatorScale(1); 1828 1826 1829 if (zoomLevel < m_minimumZoomLevel) 1827 1830 m_zoomLevel = m_minimumZoomLevel; … … 2564 2567 void WebViewImpl::setRootLayerNeedsDisplay() 2565 2568 { 2569 if (m_layerTreeHost) 2570 m_layerTreeHost->setZoomAnimatorScale(m_page->settings()->zoomAnimatorScale()); 2566 2571 #if USE(THREADED_COMPOSITING) 2567 2572 if (m_layerTreeHost)
Note: See TracChangeset
for help on using the changeset viewer.