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
Is it possible to use MAUI as a GUI? #443
Comments
As far as I know, MAUI has two ways of rendering: One is through native UI APIs as found in Android or iOS. The other one is by writing an implementation of the abstract layer using Maui Graphics. The relevant code can be found here: https://github.com/dotnet/Microsoft.Maui.Graphics, where you can find backend implementations for native APIs as diverse as DirectX or Skia. The problem: Maui.Graphics is still in development and the current backends seem to be more a proof of concept than something that can be used in production. |
If you can get native controls in a Maui app and are able to get a handle from it, you should be able to do what I did in #435 |
@StefanH-AT Your decision is even mentioned in the post. So far I can only get a window. What is also written in the post. It looks like this, I'll duplicate it here: This can be seen at the time of resizing: |
The current simplest solution is this. I'll keep looking until all the problems are solved.
Equally important is the parameter
|
Do you know if you are using Hardware acceleration with CEF, or if it is possible? |
I need a very flexible visual interface. And the browser, along with Blazor, is unfortunately the only and simplest way to implement it. I don't know yet if acceleration is used there |
@MiheevN I've read through most of this and it's still not clear to me, are you trying to:
or
or
Nevertheless, this is more of a question for the folks over at MAUI. Veldrid has a pretty decent extensibility model and swapchain abstraction, so the real question is what features are/are not supported by MAUI itself. |
In fact, Maui is the same WebView. That's what needs to be rendered. Of course, Maui seems to make it faster and more efficient, but since it's complicated - you can render just the Blazor Web server. And just run it locally is possible. And our interface becomes a site like https://localhost:9003/ What is the repository for, and a link directly to the example https://github.com/SupinePandora43/UltralightNet/tree/upstream/Examples/gpu/UltralightNet.Veldrid.TestApp
Now it seems the best option, I will develop it. Then, more likely, there will be another hybrid option, rendering the visual interface in native fast ways. |
Is there any update on this yet ? native MAUI workloads is out and It would be cool if we could support blazor. if blazorwebview controller can't use opengl-vulkan directly then why can't be used with webGPU since SPIR-V bytecode could be emitted ? it's a cool idea to manipulate xaml dom tree into some sort of interactive widget which support shaders (like those frameworks which render the entire dom into canvas). |
@PrestigeDevop But I mean, isn't what I described above what you need? To reiterate: This is rendering a browser window to a texture with Veldrid, naturally using gsl shaders. but there are other libraries, OpenGL, pure Vulcan, etc. I render Blazor in 3D space, being able to use it as a visual interface in at least menus and item terminals. That is, this method is the current topical solution to this topic. There, while studying Ultralight, you can repeat the same thing in C++. |
Millennium Challenge.
Maybe a simple answer is known, or maybe this topic will hang for decades until it is found.
It is required to render a complex interface both on top of graphics and in textures to create 3D widgets.
And MAUI is great, in my opinion.
Ideally, the 3D space itself could be one of the Maui graphic elements initially, like the Viewport in the program, but this is probably too much?
What are the options here?
Using your SwapChain, according to the principle described in the topic #435 (comment)
And trying to take the MAUI window through
var hwnd = ((MauiWinUIWindow)App.Current.Windows[0].Handler.NativeView).WindowHandle;
Sdl2Window window = new Sdl2Window(hwnd, true);
But more is needed...😈
The relevant topic in MIUI is https://techcommunity.microsoft.com/t5/app-development/maui-like-3d-gui-in-vulkcan-directx-etc/m-p/3259904
Or maybe there is something much better? Another method for creating a Complex Interface. No worse than in UE4.
The text was updated successfully, but these errors were encountered: