1. 25 Aug, 2015 1 commit
    • Adam Barth's avatar
      Use sky.SceneBuilder to upload Layer tree to C++ · 0e4ac8c1
      Adam Barth authored
      We still use SkPicture as our rasterization backend, but now we're uploading
      our layer tree to C++. A future patch will push the layer tree deeper into the
      system and we'll eventually switch backends.
      0e4ac8c1
  2. 20 Aug, 2015 3 commits
    • Adam Barth's avatar
      Remove RenderView.paintFrame · 077e75e8
      Adam Barth authored
      We now use the repaint system to do all the painting. During initialization, we
      set up a root layer that applies the device pixel ratio.
      
      Fixes #706
      077e75e8
    • Adam Barth's avatar
      Split up paintChildWithPaint into paintChildWithOpacity and paintChildWithColorFilter · 8a3285b6
      Adam Barth authored
      The compositor backends we're planning to use can't handle a general-purpose
      paint layer and instead need lower-level operations.
      
      Fixes #707
      8a3285b6
    • Hixie's avatar
      Improvements for Layers logic · 654fc734
      Hixie authored
      - Introduce some new Layer classes.
      - Introduce paintChildWith* methods.
      - Convert paint() methods to use paintChildWith* where appropriate.
      - Fix paintBounds logic in Layer world.
      - Introduce Layer.replaceWith(), so that it's clearer what's going on.
      - Make RenderObjects have a ContainerLayer, not a PictureLayer.
      - Introduce a PaintingContext.replacingLayer() constructor to highlight
        where we are creating a layer just to replace an older one.
      - Rename some layer-related methods and fields for clarity:
         requiresCompositing -> hasLayer
         hasCompositedDescendant -> needsCompositing
         updateCompositing -> updateCompositingBits
         _needsCompositingUpdate -> _needsCompositingBitsUpdate
         markNeedsCompositingUpdate -> markNeedsCompositingBitsUpdate
      - After updating compositing bits, if we find that the bit changed, we
        now call markNeedsPaint().
      - Reorder markNeedsPaint() logic for clarity.
      - Make flushPaint() start at the deepest node.
      - Make _compositeChild() avoid repainting children with hasLayer that
        aren't dirty, instead it just reuses their existing layer.
      - Made RenderView reuse the RenderObject layer instead of having its own.
      - Made RenderView have hasLayer set to true.
      - Add various asserts and comments.
      654fc734
  3. 18 Aug, 2015 1 commit
    • Hixie's avatar
      Port clipping to the new layer world. · e4ac5189
      Hixie authored
      - Add Canvas.getSaveCount()
      - Make RenderClipRect call context.paintChildWithClip instead of doing the clipping itself
      - Make ClipLayer take a Rect instead of a Size
      - Make PaintingContext.canvas read-only
      - Add PaintingContext.paintChildWithClip()
      - Minor rearrangings of code and style tweaks
      e4ac5189
  4. 14 Aug, 2015 2 commits
  5. 13 Aug, 2015 2 commits
    • Adam Barth's avatar
      Add a compositing step to the lifecycle · bf260f98
      Adam Barth authored
      Now we have the ability to draw multiple PictureLayers. We still squash all the
      pictures together into a single SkPicture for simplicity. In the future, we'll
      submit them to C++ separately and composite them on the GPU thread.
      bf260f98
    • Adam Barth's avatar
      Switch painting over to using PictureLayer · 7cba7291
      Adam Barth authored
      Currently we have a single PictureLayer that everyone draws into. A future
      patch will teach the system to use multiple PictureLayers.
      7cba7291