Dariusz Komosinski
9d9cfbd37a
Various memory optimizations.
5 years ago
Nikita Tsukanov
da580f0373
Internal API for rounded border clip for usage with Border.
6 years ago
Dan Walmsley
b51cc92ba5
Add rounded rect clip to drawing context.
6 years ago
Dariusz Komosinski
43a0f50866
Limit reallocations in the deferred renderer.
6 years ago
Dariusz Komosiński
703cb79049
Revert "Collection pooling for DeferredRenderer"
6 years ago
Dariusz Komosinski
f8c8098ad5
Pool collections used by VisualNode. Ensure that when cloning we initialize collection sizes to avoid reallocations.
6 years ago
Steven Kirk
4d01dacd77
Remove copyright headers.
Some of our files had them, some didn't. They serve no purpose legally so best to remove the ceremony.
6 years ago
Dariusz Komosinski
d9aab14c08
Fix enumerator boxing case in visual hit testing.
6 years ago
Steven Kirk
e6790fe1d1
Add check for correct VisualNode.Parent.
Check that `VisualNode.Parent` is correct when adding a child. Causes a failing test for #3095 .
7 years ago
Steven Kirk
5e9f3067ce
Fix off-by-N error in VisualNode.TrimChildren.
And added unit test.
7 years ago
Steven Kirk
25e0ed5365
Revert "Handle reparenting controls in SceneBuilder."
This reverts commit db8751d711 .
The change was incorrect, it causes #3019 .
7 years ago
Steven Kirk
db8751d711
Handle reparenting controls in SceneBuilder.
Renamed `VisualNode.SortChildren` -> `UpdateChildren` and make it remove nodes for controls that are no longer children.
7 years ago
Steven Kirk
0dce4cfc6f
Set capacity seeing as we know it.
7 years ago
Steven Kirk
cdb486fe23
Fix NRE in VisualNode.SortChildren.
`_children` may be null. In addition if there are < 2 children, there's no sorting to be done.
7 years ago
Steven Kirk
e82d67f664
Prevent NRE in VisualNode.HitTest.
Not sure how this is happening but judging by #2758 , it can happen. Defensively check for a null `Item` to prevent this.
Fixes #2758 .
7 years ago
Steven Kirk
bc5a101faf
Render changes to child order/zindex.
Fixes #2714 .
7 years ago
José Pedro
96d84c942d
Use Array.Empty instead of allocating empty arrays.
7 years ago
Dariusz Komosiński
823b58b335
Add doc comment to related methods.
7 years ago
Dariusz Komosinski
3d6b4a875b
Do not capture this when creating _drawOperationsRefCounter.
7 years ago
José Pedro
fa8d8c896d
Removed redundant bool comparisons.
7 years ago
Nikita Tsukanov
01e2345251
Preserve LayoutBounds on visual node clone
7 years ago
Steven Kirk
d15e86c2a7
Pass correct node bounds to PushOpacityMask. ( #1870 )
* Pass correct node bounds.
Use node bounds not clip bounds for opacity mask rect.
Fixes #1118 .
* Use layout bounds for opacity mask.
And added a new render test to make sure that the render transform is applied to it.
* Fix bad XAML formatting.
8 years ago
Miha Markič
0a38876590
Spellchecks all projects except for Base, Controls, Samples and Testing
8 years ago
Steven Kirk
87d7f65eb8
Added failing test for #1420 .
8 years ago
Jeremy Koritzinsky
92d171f154
VisualNodes are now owned by Scene objects, not by their parents. Add a Disposed member to make it easier to diagnose ownership bugs.
8 years ago
Jeremy Koritzinsky
458d8bf760
Don't dispose replaced visual nodes if they're replaced with themselves.
8 years ago
Jeremy Koritzinsky
74f8930277
Fixed bug in TrimDrawOperations that wasn't disposing draw operations correctly.
8 years ago
Jeremy Koritzinsky
85966d3ecf
Ref-count the draw operations collection in VisualNode so it correctly keeps the elements alive when only the collection is cloned (aka no changes are made by a cloned VisualNode) and the original VisualNode is disposed.
8 years ago
Jeremy Koritzinsky
952f89883d
Fix build errors in SceneGraph and DeferredRenderer tests.
8 years ago
Jeremy Koritzinsky
617f35ce53
Add ref-counting checks throughout the SceneGraph nodes. Because IDrawOperations can be shared between IVisualNodes, they are now also ref-counted.
8 years ago
Steven Kirk
b3fca2360d
Fix failing skia render test
Make sure we restore the transform in `EndRender` and use the same order of pushing/popping operations that `ImmediateRenderer` uses.
9 years ago
Steven Kirk
2a87dbd6ca
Fix opacity mask rendering.
We're potentially creating a new immutable version of the opacity mask each time the `VisualNode` is updated. Need to implement comparison between mutable and immutable brushes.
9 years ago
Steven Kirk
1d1f31794e
Fix layers with opacity.
We were pushing the opacity twice.
9 years ago
Steven Kirk
68bdbca899
Only create render layers when Opacity is animating.
Previously we were creating a new render layer for all controls with `Opacity != 1`. This was causing the `Calendar` page in ControlCatalog to render _really_ slowly. Instead, only create a new render layer when `Opacity` is being animated.
Also don't even render controls where `Opacity == 0`.
9 years ago
Steven Kirk
5e4f5a6160
Handle geometry clips on child layers.
9 years ago
Steven Kirk
bfd8c04149
Make geometry clips work.
Still problems with hit-testing and geometry clips aren't propogated to
new layers.
9 years ago
Steven Kirk
69bca2cf89
Got VisualBrushes working again.
9 years ago
Steven Kirk
97ea14d58c
More work on deferred renderer.
Getting opacity layers working.
10 years ago
Steven Kirk
d34c279ba1
WIP: Adding render layers.
10 years ago
Steven Kirk
1f985abaa6
Refactored VisualNode.
It now has two collections: Children and DrawOperations.
10 years ago
Steven Kirk
76ec613dea
Use correct bounds in VisualNode.
10 years ago
Steven Kirk
34227686d4
Render child visual nodes explicitly.
Render them in DeferredRenderer rather than in VisualNode.
10 years ago
Steven Kirk
cef5ffed90
Docs and tweaking.
10 years ago
Steven Kirk
934e18c8ba
Initial impl of incremental update to SceneGraph.
10 years ago
Steven Kirk
86216d9420
Use scene geometry for hit-testing.
This means we now correctly hit test circles etc.
10 years ago
Steven Kirk
d91d1829ac
Initial implementation of scenegraph hit testing.
Based solely on control bounds as before.
10 years ago
Steven Kirk
ada15eba00
Initial implementation of low-level scene graph.
Whole tree is currently being updated and rendered still though and lots doesn't even build.
10 years ago