-
-
Notifications
You must be signed in to change notification settings - Fork 977
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
Cross-platform editor rewrite - prototype #2034
base: xplat-editor
Are you sure you want to change the base?
Conversation
82a082a
to
d55536b
Compare
be27db0
to
b71176b
Compare
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
@Shadowblitz16 @Yuisyuu We're glad you guys are interested but please keep the conversation on topic :) |
…t on cle…" (stride3d#2317) This reverts commit 414faef.
…d#2302) * [Android] Fix and reimplement user input in EditText control * [Templates] Move AndroidManifest settings to Activity attribute where applicable and remove duplicate Theme setting Remove extra whitespaces in Android templates * [Android] Add syncRoot in EditText control to guard against the case where Stride deactivates the control before the Android Post action executes --------- Co-authored-by: Basewq <[email protected]>
# Conflicts: # build/Stride.sln # sources/engine/Stride.BepuPhysics/Stride.BepuPhysics.Navigation/Definitions/BuildSettings.cs # sources/engine/Stride.BepuPhysics/Stride.BepuPhysics.Navigation/Processors/RecastMeshProcessor.cs # sources/engine/Stride.BepuPhysics/Stride.BepuPhysics.Navigation/StrideGeomProvider.cs
… - the project started out as a stand-alone solution outside this repo, we should silo its code style but still enforce one at the very least
# Conflicts: # sources/editor/Stride.Assets.Presentation/StrideDefaultAssetsPlugin.cs
e5e6d11
to
bd5fbb0
Compare
c17864b
to
3072c1f
Compare
3072c1f
to
f54e459
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's start review :) (It can take a while)
@@ -3021,15 +3021,15 @@ typedef uint32_t uint4 __attribute__((ext_vector_type(4))); | |||
#endif | |||
|
|||
#if !__has_builtin(__builtin___strlcat_chk) | |||
#error \"__strlcat_chk clang built-in not available\" | |||
//#error \"__strlcat_chk clang built-in not available\" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps it would be possible to remove these conditions altogether.
Required modules to test : Stride.VR, Stride.Audio, Stride.Navigation.
This change can be added directly into master in a separate PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it should be dealt separately. I can add a // FIXME xplat-editor
like I did in other places.
.all-contributorsrc
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, NVM then - my bad.
ec76429
to
0001a17
Compare
Remove CommunityToolkit.Mvvm dependency
Split some projects to keep WPF-specific tests
Sorry it's been so long but I feel overwhelmed by the amount of changes 😣 |
Thanks. I will try to list and cleanup a list of tasks to be done and once it's ready we can merge this and continue from there. |
PR Details
This PR contains the initial work on a new cross-platform editor using Avalonia for the UI framework.
Description
In order to keep the changes separate from the existing editor libraries, a new folder
sources/xplat-editor
has been created. In this folder, there are a bunch of new projects, some which have the same naming of existing ones. The idea is that at some point, it should be possible to replace the old projects with the new ones, adapt the existing WPF code and have two versions of the editor (one implemented with WPF, the other with Avalonia) that we can compare to ensure we have all the features ported from the old one to the new one.Related issues
Feature highlights
Attributes and types registration
See documentation page
Services
See documentation page
Architectural changes
You will notice that the number of projects have greatly increased. But no panic, some are just duplicates while we work on the new editor. There are few new projects that will stay though. Those are directly related to Avalonia, and they have Avalonia in their name (e.g.
Stride.Core.Assets.Editor.Avalonia
. The reason is simple: such projects have a direct dependency with Avalonia and implements the UI/UX part of the editor, while those without that name are UI-agnostic and only have a dependency on the MVVM pattern. In other words, the latter could be reused with other MVVM-supporting UI libraries such as WPF, MAUI or any other that could come in the future (including, why not, our own Stride-implemented UI).On top of that, some classes (esp. view models) that were previously implemented in
Stride.Core.Assets.Editor
are now relocated in more editor-agnostic libraries (such asStride.Core.Assets.Presentation
orStride.Assets.Presentation
. Again, the idea is that such libraries could be reused for more simple type of apps (such as viewers for instance) that don't require the full-fledged editing capabilities but just need a MVVM version of the Core or the Stride assets.Motivation and Context
Why not?
Just kidding. There have been numerous wishes over the years to have an editor working on other platforms than Windows.
There is also a need to have a fully-fledged plugin system, and in order to achieve that similar changes to the one allowing cross-platform experience are needed. Hence, this project aims to achieve both.
Types of changes
Checklist