1. 17 Dec, 2015 1 commit
    • Hixie's avatar
      Less tree walking for compositing bits updates. · ab01c7bf
      Hixie authored
      Use the same technique for updating compositing bits as layout and
      painting. This avoids walking the entire rendering tree when all you
      need to update is a small subtree.
      ab01c7bf
  2. 16 Dec, 2015 1 commit
  3. 14 Dec, 2015 1 commit
  4. 11 Dec, 2015 1 commit
    • Ian Hickson's avatar
      applyPaintTransform() improvements · d1364643
      Ian Hickson authored
      Previously, applyPaintTransform() had to know how it was positioned in
      its parent, even though that's really the parent's responsibility.
      
      Now, applyPaintTransform() is given a child and applies the transform
      that it would give the child during paint.
      
      This makes it possible for applyPaintTransform() to work across
      coordinate system boundaries (e.g. box to sector, or view to box --
      previously, view to box only worked because we explicitly skipped that
      step -- since view doesn't actually apply a transform, it doesn't
      really matter).
      d1364643
  5. 10 Dec, 2015 1 commit
  6. 09 Dec, 2015 1 commit
    • Ian Hickson's avatar
      Catch un-normalized BoxConstraints · 1a049c14
      Ian Hickson authored
      Add BoxConstraints.isNormalized feature.
      
      Use this feature in asserts in all the intrinsic dimension methods, in
      various relevant BoxConstraints methods, and in layout().
      
      Wrap the _DebugSize logic in BoxConstraints.constrain() in an assert
      block to avoid a branch in release mode.
      
      Remove the logic in BoxConstraints.isSatisfiedBy() that dealt with
      non-normalized values.
      
      Add BoxConstraints.normalize().
      
      Make RenderCustomOneChildLayoutBox.performLayout() only set
      parentUsesSize on the child if the constraints aren't tight.
      1a049c14
  7. 08 Dec, 2015 1 commit
  8. 05 Dec, 2015 2 commits
    • Ian Hickson's avatar
      PointerInput refactor · f1625556
      Ian Hickson authored
      Instead of PointerInputEvent having a "type" field, we now have a
      different class for each pointer type.
      
      This has ripple effects throughout the system.
      
      I also did code cleanup in affected files while I was there.
      f1625556
    • Adam Barth's avatar
      Remove PaintingCanvas · abf03595
      Adam Barth authored
      We can just use Canvas now.  The two are the same thing.
      abf03595
  9. 02 Dec, 2015 1 commit
  10. 01 Dec, 2015 1 commit
    • Ian Hickson's avatar
      Remove the assert when opening popup menus. · fbd612e6
      Ian Hickson authored
      Some paint bounds are in fact empty, e.g. at the start of a growing
      animation if there's also a fade, the initial 0x0 box will also be
      opacity:0, and might get a dedicated layer and PaintingContext.
      fbd612e6
  11. 26 Nov, 2015 1 commit
  12. 25 Nov, 2015 1 commit
  13. 19 Nov, 2015 5 commits
    • Adam Barth's avatar
      Add a repaint rainbow to help debug repaint issues · 8fa223ff
      Adam Barth authored
      The repaint raindbow tints each recording with a rotating set of colors so you
      can see which pixels are repainting each frame.
      8fa223ff
    • Adam Barth's avatar
      Add debugDumpLayerTree to dump the layer tree · dfbd8c6a
      Adam Barth authored
      To help debugging issues with the layer tree.
      dfbd8c6a
    • Adam Barth's avatar
      Re-enable support for debugPaintLayerBordersEnabled · 2232ee56
      Adam Barth authored
      We lost this feature at some point. This patch brings it back.
      2232ee56
    • Adam Barth's avatar
      Some paint functions were using canvas.save/restore around children · d689362d
      Adam Barth authored
      This pattern breaks when using compositing because we need to lift those
      operations into the compositing tree. This patch removes all the ones I could
      find and adds an assert to help prevent more from getting introduced.
      
      Fixes #191
      d689362d
    • Adam Barth's avatar
      Refactor PaintingContext · fc576814
      Adam Barth authored
      This patch simplifies PaintingContext with several goals:
      
      1) We now call a callback instead of assuming the caller has a single child to
         paint. This change will let us handle render objects that wish to paint more
         than one child.
      2) We now avoid creating lots of empty picture layers because we don't eagerly
         start recording pictures. Instead, we wait for the first caller to touch the
         canvas before creating the picture recorder.
      3) We now are more consistent about which values have incorporated the painting
         offset.
      fc576814
  14. 18 Nov, 2015 1 commit
  15. 13 Nov, 2015 1 commit
  16. 10 Nov, 2015 2 commits
    • Adam Barth's avatar
      Make layout_bench.dart 19% faster · 1d7cd6b7
      Adam Barth authored
      Previously we would walk from every node in layout to the root to mark the root
      as needing paint. Now we leave dirty bits throughout the tree so that we can
      cut off the walk as soon as we find a dirty node.
      1d7cd6b7
    • Florian Loitsch's avatar
      Minor doc fixes. · c5427fb9
      Florian Loitsch authored
      c5427fb9
  17. 04 Nov, 2015 2 commits
    • Hixie's avatar
      Get more debug info into the rendering layer · 6d389722
      Hixie authored
      - change how we expose settings at the RenderObject layer so that it's
        easier to maintain.
      - expose the Widget owner chain in the RenderObject layer debug output
      - add debug info to RenderOpacity, RenderIgnorePointer, RenderListener
      - make the output for text nodes prettier
      6d389722
    • Adam Barth's avatar
      Always reset parentData when dropping children · c44dd17d
      Adam Barth authored
      Previously, we'd leave the old values in the parent data if the types matches,
      but not all render objects would reset these values during layout. For example,
      RenderProxyBox doesn't set the position field because it doesn't read the
      position field. However, leaving the old data there violates the invariants of
      the box protocol and can cause trouble (e.g., localToGlobal giving the wrong
      result).
      
      Fixes #1939
      c44dd17d
  18. 26 Oct, 2015 1 commit
    • Ian Hickson's avatar
      debugPaintPointersEnabled mode · 76381b8f
      Ian Hickson authored
      Implements a mode that highlights RenderBoxes while events are being
      routed through them.
      
      Also, moves the size painting to after paint, so that opaque boxes
      don't obscure the debugging lines.
      76381b8f
  19. 22 Oct, 2015 1 commit
    • Hixie's avatar
      Fix size magic · f67bd7d7
      Hixie authored
      The magic for updating DebugSize's knowledge about whether it was
      allowed to be used by the parent or not previously failed to correctly
      deal with sizedByParent.
      f67bd7d7
  20. 19 Oct, 2015 2 commits
    • Adam Barth's avatar
      Remove ColorFilter widget · 9baf8eb3
      Adam Barth authored
      This widget is slow and not commonly used. The original reason we added it was
      to colorize images, but now that feature is built into the image and background
      image widgets.
      
      Fixes #1646
      9baf8eb3
    • Adam Barth's avatar
      Remove old setFoo functions on Paint · 2aa79d56
      Adam Barth authored
      We now just use Dart properties, which is more idiomatic.
      2aa79d56
  21. 16 Oct, 2015 2 commits
    • Hixie's avatar
      Sundry debugging aids and fixes · d0d84e16
      Hixie authored
      (These are all the debugging-related fixes and trivial typo fixes that I
      extracted out of my heroes branch.)
      
      Fix rendering.dart import order.
      
      Introduce a debugLabel for Performances so that when you create a
      performance, you can tag it so that if later you print it out, you can
      figure out which performance it is.
      
      Allow the progress of a PerformanceView to be determined (but not set).
      
      Allow subclasses of PerformanceView that are constants to be created by
      defining a constant constructor for PerformanceView.
      
      Introduce a debugPrint() method that throttles its output. This is a
      test to see if it resolves the problems people have been having with
      debugDumpRenderTree() et al having their output corrupted on Android. It
      turns out (according to some things I read On The Internets) that
      Android only has a 64KB kernel buffer for its logs and and if you output
      to it too fast, it'll drop data on the floor. If this does in fact
      reliably resolve this problem, we should probably move the fix over to
      C++ land (where "print" is implemented) so that any use of print is
      handled (avoiding the interleaving problem we have now if you use both
      debugPrint() and print()).
      
      Fix a bug with the debugging code for "size". In the specific case of a
      RenderBox having a parent that doesn't set parentUsesSize, then later
      the parent setting parentUsesSize but the child having its layout
      short-circuited (e.g. because the constraints didn't change), we didn't
      update the _DebugSize object to know that now it's ok that the size be
      used by the parent, and we'd assert.
      
      Also, allow a _DebugSize to be used to set the size of yourself.
      Previously you could only set your size from a regular Size or from your
      child's _DebugSize.
      
      Add more debugging information to various Widgets where it might be
      helpful.
      
      Make GlobalKey's toString() include the runtimeType so that when
      subclassing it the new class doesn't claim to be a GlobalKey instance.
      
      Include the Widget's key in the Element's description since we don't
      include it in the detailed description normally (it's in the name part).
      
      Fix a test that was returning null from a route.
      d0d84e16
    • Adam Barth's avatar
      Rationalize exports a bit more · 7b31d9b2
      Adam Barth authored
      The goal is to follow the guidelines in
      https://github.com/flutter/engine/blob/master/sky/specs/style-guide.md#packages
      
      Fixes #1638
      7b31d9b2
  22. 15 Oct, 2015 1 commit
    • Hixie's avatar
      Improve debugging output · 1f40d96f
      Hixie authored
      Teach dumpRenderTree() to draw actual trees.
      Make the TextStyle output terser so it doesn't overflow the output.
      Make debugDumpApp() say what mode we're in (checked vs release).
      Hide lifecycle state from release mode dumps (since it's checked-only state).
      1f40d96f
  23. 14 Oct, 2015 1 commit
    • Hans Muller's avatar
      Added Painter, ScrollingListPainter, MaterialScrollbarPainter · 921d4320
      Hans Muller authored
      Enabled displaying a scrollbar in ScrollingLists. The scrollbar is painted as an "overlay", i.e. it's painted on top of the scrolling list's visible children.
      
      Added an abstract Painter base class that encapsulates a paint method and the renderer that it's attached to. RenderBlockViewport and HomogenousViewport now support an overlayPainter property. If specified, RenderBlockViewport attaches itself to the overlayPainter when it's attached to the rendering tree. RenderBlockViewport now calls overlayPainter.paint() after it has painted its children.
      
      Added an abstract ScrollingListPainter class that exposes ScrollingList's state which might be needed for painting. Like its scroll direction and scrollOffset. The ScrollingListPainter is notified when a scroll starts and ends.
      
      Defined a Material-specific ScrollingListPainter that renders a scrollbar. The scrollbar thumb is faded in/out when the scroll starts/ends.
      
      Added onScrollStart and onScrollEnd listeners to Scrollable.
      921d4320
  24. 13 Oct, 2015 1 commit
  25. 12 Oct, 2015 1 commit
    • Hixie's avatar
      Lots of trivial warning fixes · f2cc43a4
      Hixie authored
      Add type annotations in many places.
      Fix some identifiers to have more lint-satisfying names.
      Make all operator==s consistent in style.
      Reorder some functions for consistency.
      Make ParentData no longer dynamic, and fix all the code around that.
      f2cc43a4
  26. 10 Oct, 2015 3 commits
  27. 09 Oct, 2015 2 commits
  28. 08 Oct, 2015 1 commit
    • Hans Muller's avatar
      IndexedStack · 09d26302
      Hans Muller authored
      Added horizontal and vertical alignment properties to Stack so that the origin of non-positioned children can be specified. Currently all of the non-positioned children just end up with their top-left at 0,0. Now, for example, you can center the children by specifying verticalAlignment: 0.5, horizontalAlignment: 0.5.
      
      Added IndexedStack which only paints the stack child specified by the index property. Since it's a Stack, it's as big as the biggest non-positioned child. This component will be essential for building mobile drop down menus.
      
      Added a (likely temporary) example that demonstrates IndexedStack.
      09d26302