Skip to content
This repository has been archived by the owner on Dec 21, 2023. It is now read-only.

[Enhancement] RenderMode property #66

Open
jsuarezruiz opened this issue Oct 13, 2021 · 1 comment
Open

[Enhancement] RenderMode property #66

jsuarezruiz opened this issue Oct 13, 2021 · 1 comment
Labels
enhancement New feature or request

Comments

@jsuarezruiz
Copy link
Contributor

jsuarezruiz commented Oct 13, 2021

Include a RenderMode property.

RenderMode = "Native|Skia"

This way we allow to choose if render the control using the native drawing APIs or SkiaSharp.

Use native drawing APIs

Pros

  • Does not require adding any extra library, the size of the App package is not increased.
  • Pixel perfect mostly all the cases.

Cons

  • In a really high number of cases, we can achieve exactly the same rendering results. However, in specific cases, for example in some cases rendering text, pixel perfect is not achieved. There are small differences between platforms.
  • The performance, especially on Android, is somewhat lower than when using SkiaSharp.

Use SkiaSharp

Pros

  • High performance and 100% pixel perfect in all cases and platforms.

Cons

  • Increase the size of the App package.
@jsuarezruiz jsuarezruiz added the enhancement New feature or request label Oct 13, 2021
@RChrisCoble
Copy link

In my UC, the canvas will already be created for rendering primitives in general, and we need to add controls onto the existing canvas after the fact. Which rendering backend Maui.Graphics will be using would already be determined in that situation. Please make sure there's an ability to draw these controls on an existing canvas, and the "RenderMode" should have some type of default "UseExisting".

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants