Changeset 95988 in webkit
- Timestamp:
- Sep 26, 2011 1:31:12 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r95987 r95988 1 2011-09-26 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Revise zoom animator backend to use full transform instead of just scale. 4 https://bugs.webkit.org/show_bug.cgi?id=68535 5 6 Reviewed by Kenneth Russell. 7 8 * platform/chromium-gpu-linux/platform/chromium/compositing/zoom-animator-scale-test-expected.png: Added. 9 * platform/chromium/compositing/zoom-animator-scale-test.html: 10 1 11 2011-09-26 Mihai Parparita <mihaip@chromium.org> 2 12 -
trunk/LayoutTests/platform/chromium/compositing/zoom-animator-scale-test.html
r94789 r95988 4 4 if (window.internals) { 5 5 window.internals.setForceCompositingMode(document, true); 6 window.internals.setZoomAnimator Scale(document, 1.25);6 window.internals.setZoomAnimatorTransform(document, 1.25, -25.0, -25.0); 7 7 } 8 8 if (window.layoutTestController) { -
trunk/Source/WebCore/ChangeLog
r95985 r95988 1 2011-09-26 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Revise zoom animator backend to use full transform instead of just scale. 4 https://bugs.webkit.org/show_bug.cgi?id=68535 5 6 Reviewed by Kenneth Russell. 7 8 * page/Settings.cpp: 9 (WebCore::Settings::Settings): 10 * page/Settings.h: 11 (WebCore::Settings::setZoomAnimatorScale): 12 (WebCore::Settings::zoomAnimatorScale): 13 (WebCore::Settings::setZoomAnimatorPosition): 14 (WebCore::Settings::zoomAnimatorPosX): 15 (WebCore::Settings::zoomAnimatorPosY): 16 * platform/graphics/chromium/LayerRendererChromium.cpp: 17 (WebCore::LayerRendererChromium::LayerRendererChromium): 18 (WebCore::LayerRendererChromium::drawLayersInternal): 19 * platform/graphics/chromium/LayerRendererChromium.h: 20 (WebCore::LayerRendererChromium::setZoomAnimatorTransform): 21 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: 22 (WebCore::CCLayerTreeHost::CCLayerTreeHost): 23 (WebCore::CCLayerTreeHost::commitTo): 24 (WebCore::CCLayerTreeHost::setZoomAnimatorTransform): 25 (WebCore::CCLayerTreeHost::updateLayers): 26 * platform/graphics/chromium/cc/CCLayerTreeHost.h: 27 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: 28 (WebCore::CCLayerTreeHostImpl::setZoomAnimatorTransform): 29 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: 30 * testing/Internals.cpp: 31 (WebCore::Internals::setZoomAnimatorTransform): 32 * testing/Internals.h: 33 * testing/Internals.idl: 34 1 35 2011-09-26 Dan Bernstein <mitz@apple.com> 2 36 -
trunk/Source/WebCore/page/Settings.cpp
r95347 r95988 220 220 , m_loadsImagesAutomaticallyTimer(this, &Settings::loadsImagesAutomaticallyTimerFired) 221 221 , m_zoomAnimatorScale(1) 222 , m_zoomAnimatorPosX(0) 223 , m_zoomAnimatorPosY(0) 222 224 { 223 225 // A Frame may not have been created yet, so we initialize the AtomicString -
trunk/Source/WebCore/page/Settings.h
r95347 r95988 433 433 bool forceCompositingMode() { return m_forceCompositingMode; } 434 434 435 void setZoomAnimatorScale(double scale) { m_zoomAnimatorScale = scale; } 436 double zoomAnimatorScale() { return m_zoomAnimatorScale; } 435 void setZoomAnimatorScale(float scale) { m_zoomAnimatorScale = scale; } 436 float zoomAnimatorScale() { return m_zoomAnimatorScale; } 437 438 void setZoomAnimatorPosition(float x, float y) { m_zoomAnimatorPosX = x; m_zoomAnimatorPosY = y; } 439 float zoomAnimatorPosX() { return m_zoomAnimatorPosX; } 440 float zoomAnimatorPosY() { return m_zoomAnimatorPosY; } 437 441 438 442 void setShouldInjectUserScriptsInInitialEmptyDocument(bool flag) { m_shouldInjectUserScriptsInInitialEmptyDocument = flag; } … … 604 608 static bool gMockScrollbarsEnabled; 605 609 606 double m_zoomAnimatorScale; 610 float m_zoomAnimatorScale; 611 float m_zoomAnimatorPosX; 612 float m_zoomAnimatorPosY; 607 613 608 614 #if USE(SAFARI_THEME) -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
r95901 r95988 148 148 , m_currentRenderSurface(0) 149 149 , m_offscreenFramebufferId(0) 150 , m_zoomAnimatorScale(1)151 150 , m_contentsTextureMemoryUseBytes(0) 152 151 , m_context(context) … … 268 267 renderSurfaceLayerList.append(rootDrawLayer); 269 268 270 TransformationMatrix zoomMatrix;271 zoomMatrix.scale3d(m_zoomAnimatorScale, m_zoomAnimatorScale, 1);272 269 m_defaultRenderSurface = rootDrawLayer->renderSurface(); 273 270 m_defaultRenderSurface->clearLayerList(); … … 275 272 { 276 273 TRACE_EVENT("LayerRendererChromium::drawLayersInternal::calcDrawEtc", this, 0); 277 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootDrawLayer, rootDrawLayer, zoomMatrix, zoomMatrix, renderSurfaceLayerList, m_defaultRenderSurface->layerList(), &m_layerSorter, m_capabilities.maxTextureSize);274 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootDrawLayer, rootDrawLayer, m_zoomAnimatorTransform, m_zoomAnimatorTransform, renderSurfaceLayerList, m_defaultRenderSurface->layerList(), &m_layerSorter, m_capabilities.maxTextureSize); 278 275 } 279 276 … … 291 288 useRenderSurface(m_defaultRenderSurface); 292 289 293 // Clear to blue to make it easier to spot unrendered regions. 294 m_context->clearColor(0, 0, 1, 1); 290 if (m_zoomAnimatorTransform.isIdentity()) 291 // Clear to blue to make it easier to spot unrendered regions. 292 m_context->clearColor(0, 0, 1, 1); 293 else 294 // Clear to grey, as zoom animation may leave unrendered regions. 295 // FIXME(wjmaclean): Render some interesting texture in unrendered regions. 296 m_context->clearColor(0.25, 0.25, 0.25, 1); 295 297 m_context->colorMask(true, true, true, true); 296 298 m_context->clear(GraphicsContext3D::COLOR_BUFFER_BIT); -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h
r95901 r95988 104 104 void present(); 105 105 106 void setZoomAnimator Scale(double factor) { m_zoomAnimatorScale = factor; }106 void setZoomAnimatorTransform(const TransformationMatrix& t) { m_zoomAnimatorTransform = t; } 107 107 108 108 unsigned createLayerTexture(); … … 192 192 CCRenderSurface* m_currentRenderSurface; 193 193 unsigned m_offscreenFramebufferId; 194 double m_zoomAnimatorScale;194 TransformationMatrix m_zoomAnimatorTransform; 195 195 196 196 // Store values that are shared between instances of each layer type -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
r95962 r95988 54 54 , m_rootLayer(rootLayer) 55 55 , m_settings(settings) 56 , m_zoomAnimatorScale(1)57 56 , m_visible(true) 58 57 { … … 120 119 121 120 hostImpl->setVisible(m_visible); 122 hostImpl->setZoomAnimator Scale(m_zoomAnimatorScale);121 hostImpl->setZoomAnimatorTransform(m_zoomAnimatorTransform); 123 122 hostImpl->setViewport(viewportSize()); 124 123 … … 188 187 } 189 188 190 void CCLayerTreeHost::setZoomAnimator Scale(doublezoom)191 { 192 bool zoomChanged = m_zoomAnimator Scale!= zoom;193 194 m_zoomAnimator Scale= zoom;189 void CCLayerTreeHost::setZoomAnimatorTransform(const TransformationMatrix& zoom) 190 { 191 bool zoomChanged = m_zoomAnimatorTransform != zoom; 192 193 m_zoomAnimatorTransform = zoom; 195 194 196 195 if (zoomChanged) … … 284 283 rootRenderSurface->clearLayerList(); 285 284 286 TransformationMatrix zoomMatrix;287 zoomMatrix.scale3d(m_zoomAnimatorScale, m_zoomAnimatorScale, 1);288 285 { 289 286 TRACE_EVENT("CCLayerTreeHost::updateLayers::calcDrawEtc", this, 0); 290 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootLayer, rootLayer, zoomMatrix, zoomMatrix, m_updateList, rootRenderSurface->layerList(), layerRendererCapabilities().maxTextureSize);287 CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(rootLayer, rootLayer, m_zoomAnimatorTransform, m_zoomAnimatorTransform, m_updateList, rootRenderSurface->layerList(), layerRendererCapabilities().maxTextureSize); 291 288 } 292 289 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
r95901 r95988 28 28 #include "GraphicsTypes3D.h" 29 29 #include "IntRect.h" 30 #include "TransformationMatrix.h" 30 31 #include "cc/CCProxy.h" 31 32 … … 127 128 int frameNumber() const { return m_frameNumber; } 128 129 129 void setZoomAnimator Scale(double);130 void setZoomAnimatorTransform(const TransformationMatrix&); 130 131 131 132 const LayerRendererCapabilities& layerRendererCapabilities() const; … … 182 183 183 184 IntSize m_viewportSize; 184 double m_zoomAnimatorScale;185 TransformationMatrix m_zoomAnimatorTransform; 185 186 bool m_visible; 186 187 }; -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
r95901 r95988 152 152 } 153 153 154 void CCLayerTreeHostImpl::setZoomAnimator Scale(doublezoom)154 void CCLayerTreeHostImpl::setZoomAnimatorTransform(const TransformationMatrix& zoom) 155 155 { 156 m_layerRenderer->setZoomAnimator Scale(zoom);156 m_layerRenderer->setZoomAnimatorTransform(zoom); 157 157 } 158 158 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h
r95901 r95988 39 39 class LayerRendererChromium; 40 40 struct LayerRendererCapabilities; 41 class TransformationMatrix; 41 42 42 43 // CCLayerTreeHostImpl owns the CCLayerImpl tree as well as associated rendering state … … 76 77 void setViewport(const IntSize& viewportSize); 77 78 const IntSize& viewportSize() const { return m_viewportSize; } 78 void setZoomAnimator Scale(double);79 void setZoomAnimatorTransform(const TransformationMatrix&); 79 80 80 81 const CCSettings& settings() const { return m_settings; } -
trunk/Source/WebCore/testing/Internals.cpp
r95901 r95988 245 245 } 246 246 247 void Internals::setZoomAnimator Scale(Document *document, double scale, ExceptionCode& ec)247 void Internals::setZoomAnimatorTransform(Document *document, double scale, double tx, double ty, ExceptionCode& ec) 248 248 { 249 249 if (!document || !document->settings()) { … … 253 253 254 254 document->settings()->setZoomAnimatorScale(scale); 255 document->settings()->setZoomAnimatorPosition(tx, ty); 255 256 } 256 257 -
trunk/Source/WebCore/testing/Internals.h
r95901 r95988 78 78 79 79 void setForceCompositingMode(Document*, bool enabled, ExceptionCode&); 80 void setZoomAnimator Scale(Document*, double scale, ExceptionCode&);80 void setZoomAnimatorTransform(Document*, double scale, double tx, double ty, ExceptionCode&); 81 81 82 82 void setPasswordEchoEnabled(Document*, bool enabled, ExceptionCode&); -
trunk/Source/WebCore/testing/Internals.idl
r95890 r95988 52 52 53 53 void setForceCompositingMode(in Document document, in boolean enabled) raises(DOMException); 54 void setZoomAnimator Scale(in Document document, in double scale) raises(DOMException);54 void setZoomAnimatorTransform(in Document document, in double scale, in double tx, in double ty) raises(DOMException); 55 55 56 56 void setPasswordEchoEnabled(in Document document, in boolean enabled) raises(DOMException); -
trunk/Source/WebKit/chromium/ChangeLog
r95962 r95988 1 2011-09-26 W. James MacLean <wjmaclean@chromium.org> 2 3 [chromium] Revise zoom animator backend to use full transform instead of just scale. 4 https://bugs.webkit.org/show_bug.cgi?id=68535 5 6 Reviewed by Kenneth Russell. 7 8 * src/WebViewImpl.cpp: 9 (WebKit::WebViewImpl::setZoomLevel): 10 (WebKit::WebViewImpl::setRootLayerNeedsDisplay): 11 1 12 2011-09-26 Sheriff Bot <webkit.review.bot@gmail.com> 2 13 -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r95962 r95988 1833 1833 { 1834 1834 if (m_layerTreeHost) 1835 m_layerTreeHost->setZoomAnimator Scale(1);1835 m_layerTreeHost->setZoomAnimatorTransform(TransformationMatrix()); 1836 1836 1837 1837 if (zoomLevel < m_minimumZoomLevel) … … 2567 2567 void WebViewImpl::setRootLayerNeedsDisplay() 2568 2568 { 2569 if (m_layerTreeHost) 2570 m_layerTreeHost->setZoomAnimatorScale(m_page->settings()->zoomAnimatorScale()); 2569 if (m_layerTreeHost) { 2570 TransformationMatrix zoomMatrix; 2571 zoomMatrix.translate(m_page->settings()->zoomAnimatorPosX(), m_page->settings()->zoomAnimatorPosY()); 2572 zoomMatrix.scale(m_page->settings()->zoomAnimatorScale()); 2573 m_layerTreeHost->setZoomAnimatorTransform(zoomMatrix); 2574 } 2571 2575 #if USE(THREADED_COMPOSITING) 2572 2576 if (m_layerTreeHost)
Note: See TracChangeset
for help on using the changeset viewer.