Changeset 121987 in webkit


Ignore:
Timestamp:
Jul 6, 2012 10:47:34 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Drawing to accelerated 2D canvas causes compositor to recompute layer tree
https://bugs.webkit.org/show_bug.cgi?id=90630

Patch by Justin Novosad <junov@chromium.org> on 2012-07-06
Reviewed by Simon Fraser.

No new tests: covered by existing canvas/compositing layout tests

Before this change, there was no distinction between canvas changes
that require recomputing the compositor tree and canvas changes that
only require re-display. The new CanvasPixelsChanged member of enum
ContentChangeType requests re-display without re-layout.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::didDraw):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::contentChanged):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r121984 r121987  
     12012-07-06  Justin Novosad  <junov@chromium.org>
     2
     3        Drawing to accelerated 2D canvas causes compositor to recompute layer tree
     4        https://bugs.webkit.org/show_bug.cgi?id=90630
     5
     6        Reviewed by Simon Fraser.
     7
     8        No new tests: covered by existing canvas/compositing layout tests
     9
     10        Before this change, there was no distinction between canvas changes
     11        that require recomputing the compositor tree and canvas changes that
     12        only require re-display. The new CanvasPixelsChanged member of enum
     13        ContentChangeType requests re-display without re-layout.
     14
     15        * html/canvas/CanvasRenderingContext2D.cpp:
     16        (WebCore::CanvasRenderingContext2D::didDraw):
     17        * rendering/RenderBoxModelObject.h:
     18        * rendering/RenderLayerBacking.cpp:
     19        (WebCore::RenderLayerBacking::contentChanged):
     20
    1212012-07-06  Pavel Feldman  <pfeldman@chromium.org>
    222
  • trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp

    r119403 r121987  
    17691769        RenderBox* renderBox = canvas()->renderBox();
    17701770        if (renderBox && renderBox->hasAcceleratedCompositing()) {
    1771             renderBox->contentChanged(CanvasChanged);
     1771            renderBox->contentChanged(CanvasPixelsChanged);
    17721772            canvas()->clearCopiedImage();
    17731773            return;
  • trunk/Source/WebCore/rendering/RenderBoxModelObject.h

    r121123 r121987  
    4545    MaskImageChanged,
    4646    CanvasChanged,
     47    CanvasPixelsChanged,
    4748    VideoChanged,
    4849    FullScreenChanged
  • trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

    r121578 r121987  
    10341034
    10351035#if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS)
    1036     if ((changeType == CanvasChanged) && isAcceleratedCanvas(renderer())) {
     1036    if ((changeType == CanvasChanged || changeType == CanvasPixelsChanged) && isAcceleratedCanvas(renderer())) {
    10371037        m_graphicsLayer->setContentsNeedsDisplay();
    10381038        return;
Note: See TracChangeset for help on using the changeset viewer.