Platform options#998
Conversation
luke-whos-here
left a comment
There was a problem hiding this comment.
Mostly style edits from me. Not being the expert, I can't 100% verify the technical accuracy beyond checking the info against the source code. Although I feel like the "Metal is unstable" one shouldn't be mentioned in any case, to avoid confusion.
| | `LowLatencyDxgiSwapChain` | Feature Level 11_3, Windows 8.1 and above. Renders through a low-latency DXGI swap chain for reduced input latency, without the transparency and blur of `WinUIComposition`. Requires `RenderingMode` to include `AngleEgl`. | | ||
| | `RedirectionSurface` | Compatibility fallback for older systems. Some Avalonia features may not work. | | ||
|
|
||
| Include `RedirectionSurface` as a fallback to support the widest range of devices. If none of the listed modes apply, Avalonia throws an `InvalidOperationException`. |
There was a problem hiding this comment.
| Include `RedirectionSurface` as a fallback to support the widest range of devices. If none of the listed modes apply, Avalonia throws an `InvalidOperationException`. | |
| To support the widest range of devices, include `RedirectionSurface` as a fallback. | |
| If none of the listed modes apply, Avalonia throws an `InvalidOperationException`. |
|
|
||
| Include `RedirectionSurface` as a fallback to support the widest range of devices. If none of the listed modes apply, Avalonia throws an `InvalidOperationException`. | ||
|
|
||
| For how rendering and composition fit together, see [Application Architecture](/docs/fundamentals/architecture#the-rendering-pipeline). |
There was a problem hiding this comment.
| For how rendering and composition fit together, see [Application Architecture](/docs/fundamentals/architecture#the-rendering-pipeline). | |
| For more information on how rendering and composition fit together, see [Application architecture](/docs/fundamentals/architecture#the-rendering-pipeline). |
| |---|---| | ||
| | `PerMonitorDpiAware` | Adjusts the scale factor whenever DPI changes, such as when a window moves between monitors. | | ||
| | `SystemDpiAware` | Queries DPI once at startup and does not adjust to later changes. | | ||
| | `Unaware` | The application is DPI unaware, and the system bitmap-scales it. | |
There was a problem hiding this comment.
| | `Unaware` | The application is DPI unaware, and the system bitmap-scales it. | | |
| | `Unaware` | The application is DPI-unaware. The system bitmap-scales it. | |
| | `SystemDpiAware` | Queries DPI once at startup and does not adjust to later changes. | | ||
| | `Unaware` | The application is DPI unaware, and the system bitmap-scales it. | | ||
|
|
||
| See [High DPI and per-monitor scaling](#high-dpi-and-per-monitor-scaling) for how scaling affects layout and assets. |
There was a problem hiding this comment.
| See [High DPI and per-monitor scaling](#high-dpi-and-per-monitor-scaling) for how scaling affects layout and assets. | |
| See [High DPI and per-monitor scaling](#high-dpi-and-per-monitor-scaling) for more information on how scaling affects layout and assets. |
|
|
||
| ### Headless platform options | ||
|
|
||
| `AvaloniaHeadlessPlatformOptions` is passed to `.UseHeadless()` and has two properties: |
There was a problem hiding this comment.
| `AvaloniaHeadlessPlatformOptions` is passed to `.UseHeadless()` and has two properties: | |
| `AvaloniaHeadlessPlatformOptions` is passed to `.UseHeadless()`. It has two properties: |
luke-whos-here
left a comment
There was a problem hiding this comment.
Mostly style edits from me. Not being the expert, I can't 100% verify the technical accuracy beyond checking the info against the source code. Although I feel like the "Metal is unstable" one shouldn't be mentioned in any case, to avoid confusion.
Co-authored-by: Luke <55367595+luke-whos-here@users.noreply.github.com>
Co-authored-by: Luke <55367595+luke-whos-here@users.noreply.github.com>
Co-authored-by: Luke <55367595+luke-whos-here@users.noreply.github.com>
Co-authored-by: Luke <55367595+luke-whos-here@users.noreply.github.com>
Co-authored-by: Luke <55367595+luke-whos-here@users.noreply.github.com>
I've had Claude add some information about the various platform options. I had it read the source for each from Master and add the docs. Some of the XML documentation doesn't match the implementation though.
For example:
The XML documentation for macOS is wrong. We should fix that.
I'm unsure what the situation is with iOS. The docs match the code from Master, which shows OpenGL as being the default, which feels like a mistake given macOS is using Metal. Can we confirm if Metal is genuinely unstable on iOS, or is the XML comment old?