Novolis.Avalonia.Rendering
2026.1.6.230
dotnet add package Novolis.Avalonia.Rendering --version 2026.1.6.230
NuGet\Install-Package Novolis.Avalonia.Rendering -Version 2026.1.6.230
<PackageReference Include="Novolis.Avalonia.Rendering" Version="2026.1.6.230" />
<PackageVersion Include="Novolis.Avalonia.Rendering" Version="2026.1.6.230" />
<PackageReference Include="Novolis.Avalonia.Rendering" />
paket add Novolis.Avalonia.Rendering --version 2026.1.6.230
#r "nuget: Novolis.Avalonia.Rendering, 2026.1.6.230"
#:package Novolis.Avalonia.Rendering@2026.1.6.230
#addin nuget:?package=Novolis.Avalonia.Rendering&version=2026.1.6.230
#tool nuget:?package=Novolis.Avalonia.Rendering&version=2026.1.6.230
Novolis.Avalonia.Rendering
Avalonia hosts for Novolis rendering stacks (no XAML).
Install
dotnet add package Novolis.Avalonia.Rendering
Prerequisites: Avalonia 12+, .NET 10. Published Novolis.Rendering.TwoD and Backends.TwoD.Silk on GitHub Packages.
Quick start
using Novolis.Avalonia.Rendering;
using Novolis.Rendering.Presentation;
using Novolis.Rendering.TwoD;
var view = new TwoDSceneControl { Scene = new TwoDScene() };
view.FrameUpdating += (_, e) =>
{
// Poll-style (Silk-like): edge-triggered in framebuffer pixels
if (view.IsMouseButtonPressed(MouseButton.Left))
HitTest(view.MousePixelPosition);
};
view.ScenePointerPressed += (_, e) =>
{
// Event-style: e.PixelX/Y already DPI-scaled to the GL framebuffer
if (e.Button == MouseButton.Left && e.IsInside)
HitTest(new(e.PixelX, e.PixelY));
};
// OpenGlControlBase needs ICustomHitTest (implemented) or pointer events never arrive.
// Agents can also inject: view.InjectPointerPressed(px, py);
Controls
| Control | Hosts | Use when |
|---|---|---|
TwoDSceneControl |
Novolis.Rendering.TwoD + Silk OpenGL |
World / map / sprite viewport |
Rgba32FrameControl |
CPU Rgba32 buffer (IFramePresenter) |
Path tracing preview, software ray trace |
For Avalonia menus and HUD over the Silk surface (pause, encyclopedia, status strips), use Novolis.Avalonia.Gaming (GameShell) instead of drawing interactive chrome into TwoDScene.
TwoD scene (OpenGL)
On Windows, prefer WGL so OpenGlControlBase initializes:
appBuilder.UsePlatformDetect()
.With(new Win32PlatformOptions { RenderingMode = [Win32RenderingMode.Wgl] });
On macOS (Avalonia 12 defaults to Metal), force OpenGL if required:
.With(new AvaloniaNativePlatformOptions
{
RenderingMode = [AvaloniaNativeRenderingMode.OpenGl],
});
CPU frame (path trace)
var frame = new Rgba32FrameControl();
frame.PresentCpuFrame(pixels, width, height);
// or: backend presents via IFramePresenter when frame is the control
Boundaries
- References Rendering packages only — not Simulation, Physics, or Raylib.
- Apps wire simulation → scene or
PresentCpuFrameat compose time. - For Raylib inside Avalonia, use
Novolis.Avalonia.Raylib(RaylibHostControl). - For interactive HUD/menus over TwoD, use
Novolis.Avalonia.Gaming(GameShell).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Avalonia (>= 12.1.3)
- Novolis.Math.Geometry (>= 2026.1.1.57)
- Novolis.Rendering.Presentation.Abstractions (>= 2026.1.1.75)
- Novolis.Rendering.TwoD (>= 2026.1.1.75)
- Novolis.Silk.Runtime (>= 2026.1.1.3)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Novolis.Avalonia.Rendering:
| Package | Downloads |
|---|---|
|
Novolis.Avalonia.Raylib
Avalonia host control for embedded Raylib viewports (hidden GLFW + RGBA streaming). |
|
|
Novolis.Avalonia.Gaming
Avalonia game shell: Silk/TwoD viewport host with HUD and modal menu overlays, HardPause defaults for interactive UIs. |
|
|
Novolis.Avalonia.ThreeD
Avalonia ThreeD editor surface: scene hierarchy, OpenGL wireframe viewport, mesh tools, lights, cameras, and agent session. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.6.230 | 45 | 10/6/2026 |
| 2026.1.6.229 | 70 | 10/4/2026 |
| 2026.1.6.228 | 58 | 10/4/2026 |
| 2026.1.6.226 | 66 | 10/4/2026 |
| 2026.1.6.221 | 70 | 10/4/2026 |
| 2026.1.6.220 | 79 | 10/3/2026 |
| 2026.1.6.218 | 86 | 10/3/2026 |
| 2026.1.6.196 | 92 | 10/2/2026 |
| 2026.1.6.195 | 80 | 10/2/2026 |
| 2026.1.6.194 | 95 | 10/1/2026 |