[RFC] Migrate to AvaloniaUI
See original GitHub issueIs your feature request related to a problem? Please describe.
Right now we have editor only for win
platform.
For going crossplat we need to migrate to avalonia
or maui
MAUI
dosen’t fits bc support for linux provide community and not MS devs.
Describe the solution you’d like MVVM Crossplat RxUI Stride.Editor.
Describe alternatives you’ve considered There is also MVU approach but in MVU we CAN’T easily replace views if we need and it will make editor plugins & customization harder to develop. On the other side MVU MUCH simplier then MVVM. However, even with all the pros and cons, I tend to favor slightly more development time and flexibility than ease and complexity of extensibility.
Additional context dunno
Here are some questions that can aid in the description of the feature request:
-
What are the usecases? Stride.Editor on MacOS and Linux
-
What kind of options/settings are expected/wanted? All what we have in editor RN. we need to made few platform specific services also
-
What would the (pseudo) code look like? Well…
-
Is the feature affecting behaviour in the editor? 50/50. It adds crossplat support. But common behaviour must be same as now
-
Is there a component or datastructure? MVVM or MVU. We need to choose solution that will suite for us. Also if we pick MVVM we can write plugins in MVVM/MVU approach
-
what kind of documentation is needed or needs to be updated? dunno
-
Should there be an example project? no
Issue Analytics
- State:
- Created 6 months ago
- Reactions:3
- Comments:17 (11 by maintainers)
Top GitHub Comments
There was a short conversation recently on discord about using Avalonia for the editor - it seems it’s doable but currently complicated to get the GPU rendering of the scene embedded directly in the Window as it’s currently done with WPF. One company (closed source) made it work and it looks great: https://blog.jetbrains.com/dotnet/2021/05/10/case-study-how-gritworld-uses-rider-and-avalonia-to-build-a-powerful-3d-engine/ Here’s an issue talking some details about it: https://github.com/AvaloniaUI/Avalonia/discussions/8199 More discussions with little to no results: https://github.com/AvaloniaUI/Avalonia/discussions/5432, https://github.com/AvaloniaUI/Avalonia/discussions/7137 And there’s a lot of success regarding making a video player with Avalonia: https://github.com/AvaloniaUI/Avalonia/discussions/10683
But as I was going through the issues I stumbled over this one: https://github.com/AvaloniaUI/Avalonia/issues/9925 Even with some samples https://github.com/AvaloniaUI/Avalonia/tree/master/samples/GpuInterop
Didn’t have too much time to dig deeper and try any of this myself but is seems promising.
been looking at this again and just wanted to add some interesting findings. Ryujinx currently has an example of using Opengl AND Vulkan with Avalonia inside of a NativeControlHost. this is the project running Avalonia the default is still using SDL in the main branch.
They have a list of some issues but it seems like some might be specific to Ryuijinx Avalonia Ryujinx issues.
Thats it for now I am taking a peak at how we do the rendering in Stride and it may not be the worst thing to implement as a test for Opengl. I will be tracking it here as I learn wish me luck!