-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite of rendering stack #827
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Whole tree is currently being updated and rendered still though and lots doesn't even build.
Use the one in Avalonia.UnitTests.
Conflicts: tests/Avalonia.Visuals.UnitTests/TestRoot.cs
Based solely on control bounds as before.
This means we now correctly hit test circles etc.
Now that we use the scenegraph for hit testing. This fixes the tabs in ControlCatalog.
In hit testing unit tests.
And add to-do for RectangleNode geometry hit-test.
And added a test for it.
Render them in DeferredRenderer rather than in VisualNode.
When not in a unit test, only update the scene from the render loop.
- We don't need ConcurrentQueue in renderer - DirtyRects coalescing was wrong - Display number of updated rects for debug until we have dirty rect rendering - Animate 2 items at once in RenderTest
Previous code was me trying to work something out.
It was being set twice.
Removed it from the wrong place in the previous commit.
This was referenced Jul 31, 2017
Still needs changing in `IPlatformRenderInterface` but I'd prefer to make that change in a separate PR.
And add a description of why it's not supported.
Make the `ITopLevelImpl` create the renderer instead.
@kekekeks how's this looking to you now? |
kekekeks
approved these changes
Aug 5, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously we redrew everything on a window each time the window contents changed. This PR implements a new
DeferredRenderer
class (the previous renderer is still available asImmediateRenderer
) which renders to a low-level scenegraph on the UI thread which is then renderered to the window on a separate render thread.This gives us:
Things left to do:
VisualBrush
es are currently broken (don't open the DropDown page in ControlCatalog!)Known problems that I'm going to punt to a later PR to prevent this one growing too huge:
RenderTargetBitmap
s for render layers and in D2D they are backed with WIC bitmaps, which need to be format converted on every frameFixes #201
Fixes #646