-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Stand-alone widget tree with multiple render trees to enable multi-view rendering #125003
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
Merged
Merged
Changes from all commits
Commits
Show all changes
115 commits
Select commit
Hold shift + click to select a range
34405f8
++
goderbauer 042d107
works
goderbauer 0911082
++
goderbauer 20b9688
can global key move
goderbauer a559d6d
change framework
goderbauer 5546fb0
slots are set correctly
goderbauer 2b02d56
examples
goderbauer 27fbcde
WidgetInspector & SemanticsDebugger
goderbauer 82f6ef5
dev mirgated
goderbauer 67275d6
flutte drive
goderbauer 8527f39
testing minus livetest
goderbauer 0eb2111
fix createViewConfigurationFor
goderbauer b1a32af
disable LiveTesting stuff
goderbauer 70aefd5
hit testing
goderbauer 5a27c9f
semantics id chnge
goderbauer 1602e80
backwards compatible renderVIew nad pipelineowner
goderbauer 00b0e83
fix dirty flag
goderbauer 06151ad
fix most of rendering
goderbauer 7e10995
fix most of rendering
goderbauer ec59a3a
more fixes for tests
goderbauer 0aeecc1
backwards
goderbauer 34f2cc4
restoration fix - 171 failures
goderbauer b7e217d
fix navigator - 95 failing
goderbauer 41ee7dc
maybe all passing?
goderbauer 8dd38d0
all tests
goderbauer df2dbd2
enable datepicker tests
goderbauer 2994559
dart:ui shims
goderbauer 6df2048
deprecation notices
goderbauer 70c4dc7
enable pointer tests
goderbauer f557b38
fix CI
goderbauer cb930f2
mark root in timeline
goderbauer b9d9868
fix more CI issues
goderbauer 6d85176
collection
goderbauer 2c1b6a5
adjustment for prototype
goderbauer 7d70bd5
fix gesture view IDs
goderbauer 2f44463
LiveWidgetTestBinding
goderbauer ce725c0
Add RawView
goderbauer c50c0fd
better backwards compatibility
goderbauer b65d65c
fix analyer warnings
goderbauer c508eab
fix web test
goderbauer 483019f
fix test to support random execution order
goderbauer 6f1083d
fix rebase
goderbauer 48cc2eb
rebase fix
goderbauer 67f6af1
revert cancel pointer
goderbauer 08d015f
random fixes
goderbauer 7c2249a
improve docs
goderbauer 66a588c
remove unused error handler
goderbauer 78622ce
error handling started
goderbauer ced43ba
some tests work
goderbauer 1448cce
Most error tests pass
goderbauer 4669c2a
minor improvments
goderbauer 99652e8
more tests
goderbauer 26d6641
all error tests pass
goderbauer e6cbdff
fix all but independent_widget_layout_test.dart
goderbauer 6818c63
++
goderbauer d94d126
updateSlot, added commented out globalkey tests
goderbauer 0b0a7bd
fix independent layout test
goderbauer 2e81007
fix allocation test
goderbauer 80224be
Fix IntegrationTestWidgetsFlutterBinding
goderbauer 8fe8d38
WIP with lots of prints
goderbauer 45f511f
ViewElement gets viewhooks from dependencies directly
goderbauer 1b73a11
all framework tests pass again plus a new test
goderbauer 60f08d8
fix analyzsis
goderbauer b9b44c7
fix last test
goderbauer 1fbc927
move code arround
goderbauer 9a894be
more tests
goderbauer c5f7b62
analyzer
goderbauer 9a77c78
renderer binding tests
goderbauer 920870b
another batch of tests
goderbauer d989fa2
more tests
goderbauer 6e5199e
all framework tests done
goderbauer b08dc8d
fix string matching tests
goderbauer 1638115
tiny test fix
goderbauer 7ed29b3
a11y guideline tests
goderbauer 982413b
controller tests
goderbauer ce4f9e1
more tests
goderbauer d4b9d67
various doc fixes
goderbauer 4e96946
whitespace
goderbauer 9b40ce4
rendering docs done
goderbauer fb8dd2e
first batch of widget docs
goderbauer 56182fb
all docs updated
goderbauer d56b2cc
more tests
goderbauer 69d08ab
fixing tests and some more tests
goderbauer eebcd87
fix doc references
goderbauer 36f10b1
comment
goderbauer 69d3d86
another comment fix
goderbauer 92ab294
add ViewConfiguration workaround
goderbauer 20701f1
fix semantics tree disposal
goderbauer 1eb01e8
another test
goderbauer 51f73f7
RenderViewRepository -> RenderViewManager
goderbauer d993b9d
review
goderbauer 7394a47
remove unrechable
goderbauer 431a40b
more review
goderbauer 81486ec
make ViewHooksScope private
goderbauer 8c198a4
implement DiagnosticableTreeMixin for PipelineOwner
goderbauer dca0cac
fix typo
goderbauer 39257ae
rename ViewHooksScope in tests, rename attachmentPoint, doc fixes
goderbauer 89d6e69
review
goderbauer 15df175
fix up error strings in tests
goderbauer 20b9671
typo
goderbauer 765ef50
use FlutterLogo
goderbauer 27c57e2
review
goderbauer 0e4e8c0
update docs on RenderObjectToWidgetElement
goderbauer 0bedad9
remove viewhooks, renderviewmanager
goderbauer 3639a9a
Remove outdated reference to RenderViewManager
goderbauer 3fcfe08
make rawview private
goderbauer 1e41ab3
root PO cannot manage root node
goderbauer 2dbd70e
typo
goderbauer ca48123
fix test
goderbauer d1c72d9
fix one more test
goderbauer 5bd284b
doc updates
goderbauer 2d42239
fix reference
goderbauer d41dec4
more doc rewrites
goderbauer 4cb37b7
doc doctorings
goderbauer b33f95a
maybe the last doc fix?
goderbauer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,69 @@ | ||
| // Copyright 2014 The Flutter Authors. All rights reserved. | ||
| // Use of this source code is governed by a BSD-style license that can be | ||
| // found in the LICENSE file. | ||
|
|
||
| import 'dart:ui'; | ||
|
|
||
| import 'package:flutter/rendering.dart'; | ||
|
|
||
| /// An extension of [RenderingFlutterBinding] that owns and manages a | ||
| /// [renderView]. | ||
| /// | ||
| /// Unlike [RenderingFlutterBinding], this binding also creates and owns a | ||
| /// [renderView] to simplify bootstrapping for apps that have a dedicated main | ||
| /// view. | ||
| class ViewRenderingFlutterBinding extends RenderingFlutterBinding { | ||
| /// Creates a binding for the rendering layer. | ||
| /// | ||
| /// The `root` render box is attached directly to the [renderView] and is | ||
| /// given constraints that require it to fill the window. The [renderView] | ||
| /// itself is attached to the [rootPipelineOwner]. | ||
| /// | ||
| /// This binding does not automatically schedule any frames. Callers are | ||
| /// responsible for deciding when to first call [scheduleFrame]. | ||
| ViewRenderingFlutterBinding({ RenderBox? root }) : _root = root; | ||
|
|
||
| @override | ||
| void initInstances() { | ||
| super.initInstances(); | ||
| // TODO(goderbauer): Create window if embedder doesn't provide an implicit view. | ||
| assert(PlatformDispatcher.instance.implicitView != null); | ||
| _renderView = initRenderView(PlatformDispatcher.instance.implicitView!); | ||
| _renderView.child = _root; | ||
| _root = null; | ||
| } | ||
|
|
||
| RenderBox? _root; | ||
|
|
||
| @override | ||
| RenderView get renderView => _renderView; | ||
| late RenderView _renderView; | ||
|
|
||
| /// Creates a [RenderView] object to be the root of the | ||
| /// [RenderObject] rendering tree, and initializes it so that it | ||
| /// will be rendered when the next frame is requested. | ||
| /// | ||
| /// Called automatically when the binding is created. | ||
| RenderView initRenderView(FlutterView view) { | ||
| final RenderView renderView = RenderView(view: view); | ||
| rootPipelineOwner.rootNode = renderView; | ||
| addRenderView(renderView); | ||
| renderView.prepareInitialFrame(); | ||
| return renderView; | ||
| } | ||
|
|
||
| @override | ||
| PipelineOwner createRootPipelineOwner() { | ||
| return PipelineOwner( | ||
| onSemanticsOwnerCreated: () { | ||
| renderView.scheduleInitialSemantics(); | ||
| }, | ||
| onSemanticsUpdate: (SemanticsUpdate update) { | ||
| renderView.updateSemantics(update); | ||
| }, | ||
| onSemanticsOwnerDisposed: () { | ||
| renderView.clearSemantics(); | ||
| }, | ||
| ); | ||
| } | ||
| } | ||
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.