-
Notifications
You must be signed in to change notification settings - Fork 19
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
Support multiple screens #94
Comments
@xuelian-bai @swift-kim Any comments? |
I'm not sure about this, but I think, if we want to support multi-screens, we can just create multiple flutter engines, each engine has its own window, this may consume many resources, but it's easy to do this way. |
for multiscreen requirement, is it for multiple monitor? One monitor display one window? Only one window can handle input events? If that's the scenario, we can use eom to present another window(image) on another display. https://code.sec.samsung.net/confluence/display/WSI/EOM |
@xuelian-bai Yes, I heard the second monitor wouldn't accept touch input and only display visual contents (mostly ads) without user interaction for now. Probably the API you mentioned will be used (I don't know the details). However, the scenario may be changed in the future and I think @bwikbs is preparing for possible future requirements. |
yes
Nothing has been confirmed yet. I wish I want to know too.. 😄
There are many ways that how app developers use this, and I hope you will focus on that and share and discuss our ideas. |
We may refer to this plugin https://github.com/VNAPNIC/presentation-displays.git |
Thanks for giving me a good idea! |
it's just a rough process, here are more details, almost the same as the referred plugin: |
Unfortunately no one can do this. 😄 I think your approach is pretty good.(Especially,app developer doesn't need a native app interface) but still need a new engine instance and window instance.(Am I right?) IMO, Now is the time to prepare for the unclear requirement, If we can afford it, it would be meaningful to POC both and integrate them later. |
Yes, it needs a new engine instance, and I'm not sure if this engine instance can access "route" in main widget.
I checked android patch, lots of work, when will you start?
I will assign xiaowei to investigate and implement eom related plugin, is that ok? Actually I think there is another easier approach for the requirement, but it's kind of work around
|
Yes, you're right! And I haven't figured out what to do yet. My current plan is to create an API that uses the shell's spawn API first, and then slowly add the rest of the work and what we need. After the word came out, Let me share what I've checked so far... Therefore, no special modifications are required at this time, and we can test 2 instances by adding spawn api to the embedder part.
Maybe @haesik will answer this. 😄
If we don't have time and the scenario is finalized, we can consider it...But we still have time, so let's leave it as the last resort. 😃 |
Why two vsync are not supposed to use at the same time? I didn't check code of this part, but theoretically, If there are two engines, then there are two vsync, they are in different thread, why can't co-exist? |
@xuelian-bai You can make the EOM related plugin of course, but we can change the direction or plan to support multiple screens |
@xuelian-bai Can you tell me something about this? |
I think I've shared what I'm trying to do. IMO, there are two options.
Plz, give me your opinion. |
@bwikbs If the design and API haven't been fixed yet, the first option looks better for me. If not many API changes will be made in the future, you might also consider the second option. |
Thanks for your comment. I think the first one is better too. |
update
|
@bwikbs did you run in release mode? |
No, only debug mode. Is there any difference? |
not sure if it's related, but you may see in function DartIsolate::CreateRootIsolate(), it will also check DartVM::IsRunningPrecompiledCode() if spawning_isolate. anyway, worth a try.. |
Here is result of
|
hmm. launch is definitely quicker, as I tested, release mode will decrease about 500ms when preparing dart isolate, since it's using AOT. |
https://github.com/xiaowei-guan/engine/tree/dart_entrypoint
|
Oh, thank you! |
flutter-tizen/embedder#3 |
Background?
There are requirements for
multiple screens
. There's nothing specific, everything can change, butmultiple screens
don't change. 😄 So I checked how multi-screen support is going on in Flutter. And I found the following:IMO, Supporting multiple windows didn't seem to happen soon at this moment. So I decided to look for Plan B.
That is
EngineGroup
feature.(https://flutter.dev/docs/development/add-to-app/multiple-flutters)Technically, It’s a little different but I thought It would be able to produce similar looking with multi screen app.
So, I aimed the first step of this task to port sample app(https://github.com/flutter/samples/tree/master/add_to_app/multiple_flutters) at tizen.
EngineGroup
As you can see in the example, this is part of how to embed Flutter in a native app. The best way is to embed Flutter in tizen as one of the GUI widgets , but this is not easy In the current implementation. (Many of our rendering behavior are
based on window)
Here is my rough plan based on these.
spawn
API in embedder.FlutterEngineGroup
API at native API(Of course, I am not insisting that this feature should be done this way. Any ideas are welcome. 😄 )
The text was updated successfully, but these errors were encountered: