1. 14 Sep, 2015 2 commits
  2. 11 Sep, 2015 3 commits
  3. 09 Sep, 2015 1 commit
  4. 08 Sep, 2015 2 commits
    • Adam Barth's avatar
      Remove package:sky/base · 6fc343a0
      Adam Barth authored
      These files really belong on other libraries.
      6fc343a0
    • Adam Barth's avatar
      Introduce package:sky/animation.dart · b356d146
      Adam Barth authored
      Move the animation libraries into src/animation and change importers to use
      package:sky/animation.dart. Also, move scheduler.dart into the animation
      library so that the animation library can be self-contained.
      b356d146
  5. 02 Sep, 2015 1 commit
    • Adam Barth's avatar
      Move widgets and rendering inside src · 693ddcd8
      Adam Barth authored
      Code outside of package:sky should import this code using
      
      package:sky/rendering.dart
      package:sky/widgets.dart
      
      Moving this code into the "src" directory is a convention that signifies that
      and it cleans up the generated dartdoc because the libraries in the src
      directory aren't included in the generated documentation. Instead, the classes
      are documented in the widgets.dart and rendering.dart libraries.
      693ddcd8
  6. 01 Sep, 2015 1 commit
  7. 27 Aug, 2015 1 commit
    • Hixie's avatar
      Allow parents of RenderObjects that have layout callbacks to depend on those objects' sizes. · a6e6b93b
      Hixie authored
      Previously, if you used a layout callback, you could not have a parent
      that did parentUsesSize, or if you did, you had to be marked
      sizedByParent. With this patch, we allow the parent to depend on your
      layout, even if you modify your child list during your layout using a
      layout callback, by checking that the parent is still actively being
      laid out in this scenario.
      a6e6b93b
  8. 26 Aug, 2015 1 commit
  9. 25 Aug, 2015 1 commit
    • Adam Barth's avatar
      Fix build · 1883d06a
      Adam Barth authored
      I removed these functions by mistake in my previous patch.
      1883d06a
  10. 24 Aug, 2015 2 commits
  11. 21 Aug, 2015 1 commit
  12. 20 Aug, 2015 4 commits
    • Hixie's avatar
    • 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
  13. 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
  14. 14 Aug, 2015 3 commits
    • Adam Barth's avatar
      Add a compositing update phase · e17aa1b6
      Adam Barth authored
      We need to compute whether a RenderObject has a composited descendant so that
      we can decide whether to use canvas.saveLayer or to create a new composited
      layer while walking down the tree during painting.
      
      The compositing update walks the tree from the root only to places where the
      tree's structure has been mutated. In the common case during an animation loop,
      we won't need to visit any render object beyond the root.
      e17aa1b6
    • Adam Barth's avatar
      Separate the notions of offset and size in compositing · 86da2f9b
      Adam Barth authored
      Separating these notions makes them easier to work with because offset is
      relative to the parent layer whereas size is intrinsic to the layer itself.
      This patch fixes the underpainting bugs when compositing the stocks example.
      86da2f9b
    • Adam Barth's avatar
      Generalize _cleanRelayoutSubtreeRootChildren into visitChildren · 53884a37
      Adam Barth authored
      This generalization will let us implement other alogorithims that need to walk
      the RenderObject tree.
      53884a37
  15. 13 Aug, 2015 4 commits
  16. 11 Aug, 2015 1 commit
    • Adam Barth's avatar
      Don't paint twice · 88eba915
      Adam Barth authored
      In refactoring the way we generate the SkPicture, I accidentially made us
      generate the SkPicture twice. This CL causes us to generate it only once.
      88eba915
  17. 07 Aug, 2015 1 commit
  18. 04 Aug, 2015 1 commit
    • James Robinson's avatar
      Teach event system about disposition and make 'consumed' disposition terminal · 53163f8b
      James Robinson authored
      This introduces the notion of event disposition and allows event
      targets (widgets and render objects) to consume events that should not
      be processed further. This is needed by the Switch component in the
      Drawer in the stocks example. The Switch is embedded in a DrawerItem.
      The Switch handles the gesture tap event to toggle its state and should
      handle pointer events to allow swiping and draw its own radial
      reaction. The DrawerItem also handles gesture taps to allow toggling
      the switch value when tapping anywhere on the drawer and to draw its
      own ink splash. When tapping on the switch, both the switch's render
      object and the DrawerItem's listener are in the event dispatch path.
      The Switch needs to signal in some fashion that it consumed the event
      so the DrawerItem does not also try to toggle the switch's state.
      53163f8b
  19. 28 Jul, 2015 2 commits
  20. 22 Jul, 2015 1 commit
    • Hixie's avatar
      Fix the crash when going to settings after showing the popup menu. · a50b0651
      Hixie authored
      If your constraints are tight when you get laid out, you don't get a
      relayout subtree root.
      
      If you don't have a relayout subtree root, and you get marked dirty,
      you go through layoutWithoutResize() rather than layout(), so we don't
      get a parentUsesSize.
      
      If you're not dirty and your constraints didn't change, layout() skips
      your layout.
      
      So then if your initial layout had parentUsesSize:true, and then you
      got marked dirty directly, you would set your size with
      parentCanUseSize=false, and then later if your parent tried to lay you
      out then read your size, it would crash because your size wasn't set
      up to allow you to get your size.
      
      The fix is to actually remember the last setting of parentUsesSize,
      even in the case of the constraints being tight and you later being
      marked as needing layout directly.
      a50b0651
  21. 16 Jul, 2015 1 commit