38ea40eb750596c75b8ffb5c8f94bcb84b94a7c3 |
|
29-Jan-2018 |
Florin Malita <fmalita@chromium.org> |
[skottie] Layer clip support TBR= Change-Id: Ibf65efc69031f8f6e19f4f28cccab29c357e704d Reviewed-on: https://skia-review.googlesource.com/101540 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
/external/skia/experimental/sksg/SkSGGeometryNode.cpp
|
c14f144484eff57f6861766510876d83b9046fa6 |
|
05-Jan-2018 |
Florin Malita <fmalita@chromium.org> |
[sksg] More inval fixes Backpedal on node/reval-time-determined damage: nodes cannot control the invalidation order, and shared descendants may be revalidated before a particular ancestor gets to query their state - thus making any decisions based on that invalid. Instead, apply damage suppression at invalidation time, based on node type/traits. Node types which don't generate direct damage are marked as such, and the invalidation logic bubbles damage past them, until it finds a valid damage receiver. Nodes which currently suppress damage: - PaintNode (and subclasses) - GeometryNode (and subclasses) - Matrix TBR= Change-Id: I843e683e64cb6253d8c26d8397c44d02a7d6026f Reviewed-on: https://skia-review.googlesource.com/91421 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
/external/skia/experimental/sksg/SkSGGeometryNode.cpp
|
e6345d90f8f9d975128de9890d26b1af1fedc524 |
|
04-Jan-2018 |
Florin Malita <fmalita@chromium.org> |
[skotty,sksg] Add support for geometry merge TBR= Change-Id: Ia5edbfeae61779ead6031f6dd4e33794b3eefdc0 Reviewed-on: https://skia-review.googlesource.com/90382 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
/external/skia/experimental/sksg/SkSGGeometryNode.cpp
|
c75e2401a82640c35b0b5f80a5684d0892904530 |
|
03-Jan-2018 |
Florin Malita <fmalita@chromium.org> |
[sksg] Refine invalidation logic We need to discriminate between nodes whose bounds updates contribute to the dirty region, and nodes whose bounds changes do not. E.g. animated shape in a group: the animated shape node bounds should yield damage, but the ancestor group bounds should not. To accomplish this, we refine the invalidation state: 1) self invalidation == the node itself was invalidated, and its bounds updates yield damage. 2) descendant invalidation == the node has some (self-)invalidated descendant, but its own bounds are not contributing damage. Also: * hoist the bounding box invalidation logic into the base class (Node::revalidate) and update to respect the states described above. * remove (now-redundant) GeometryNode bbox logic. * update revalidation methods to return the node bbox instead of void TBR= Change-Id: I8023d1793fb501c945a53f2dc2d2983e5b620ade Reviewed-on: https://skia-review.googlesource.com/90581 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
/external/skia/experimental/sksg/SkSGGeometryNode.cpp
|
2a2dfcbb4267e1c7e4aac39e0d78bc41695a2259 |
|
29-Dec-2017 |
Florin Malita <fmalita@chromium.org> |
[sksg] Fix paint inval Paint nodes contribute to invalidation. Hoist the inval logic from geometry nodes to draw nodes. TBR= Change-Id: Iab33086c377ef4940a84dae3cdccb2c9bdbee99c Reviewed-on: https://skia-review.googlesource.com/89901 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
/external/skia/experimental/sksg/SkSGGeometryNode.cpp
|
4aa4441186b06565a597ec4a9baac5a972fddb51 |
|
19-Dec-2017 |
Florin Malita <fmalita@chromium.org> |
Initial scene graph (SkSG) Sketching a thin (as in close-to-skia-semantics) scene graph API, focused on external animation, inval tracking and minimal repaint. Only a few concrete classes/features so far: * Rect/Color/Transform/Group * basic inval tracking * a trivial animated sample with inval visualization Pretty much everything (especially naming) is volatile, so treat accordingly. The interesting bits to review are likely in Node.{h,cpp} for inval and SampleSGInval.cpp for usage. Initial class hierarchy: * Node: invalidation/ancestors tracking | -- * RenderNode: onRender(SkCanvas) | | | -- * Draw (concrete): rendering a [geometry, paint] tuple | | | -- * Group (concrete): grouping multiple RenderNodes | | | -- * EffectNode: single-descendant effect wrapper | | | -- * Transform (concrete): transform effect | -- * PaintNode: onMakePaint() | | | -- * Color (concrete): SkColor paint wrapper | -- * GeometryNode: onComputeBounds(), onDraw(SkCanvas, SkPaint) | -- * Rect (concrete): SkRect wrapper TBR= Change-Id: Iacf9b773c181a7582ecd31ee968562f179d1aa1b Reviewed-on: https://skia-review.googlesource.com/85502 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
/external/skia/experimental/sksg/SkSGGeometryNode.cpp
|