Novolis.Rendering.Presentation.Abstractions
2026.1.1.104
dotnet add package Novolis.Rendering.Presentation.Abstractions --version 2026.1.1.104
NuGet\Install-Package Novolis.Rendering.Presentation.Abstractions -Version 2026.1.1.104
<PackageReference Include="Novolis.Rendering.Presentation.Abstractions" Version="2026.1.1.104" />
<PackageVersion Include="Novolis.Rendering.Presentation.Abstractions" Version="2026.1.1.104" />
<PackageReference Include="Novolis.Rendering.Presentation.Abstractions" />
paket add Novolis.Rendering.Presentation.Abstractions --version 2026.1.1.104
#r "nuget: Novolis.Rendering.Presentation.Abstractions, 2026.1.1.104"
#:package Novolis.Rendering.Presentation.Abstractions@2026.1.1.104
#addin nuget:?package=Novolis.Rendering.Presentation.Abstractions&version=2026.1.1.104
#tool nuget:?package=Novolis.Rendering.Presentation.Abstractions&version=2026.1.1.104
Novolis.Rendering.Presentation.Abstractions
Host-neutral presentation contracts between ray tracing backends and window hosts: CPU pixel output, optional GPU surfaces, and frame presenters.
Install
dotnet add package Novolis.Rendering.Presentation.Abstractions
Prerequisites: .NET 10 SDK (net10.0), Novolis.Math.Geometry.
Quick start — CPU blit path
using Novolis.Rendering.Presentation.Abstractions;
IRenderOutput output = backend.Output;
if (output.TryGetCpuPixels(out var pixels, out var w, out var h))
presenter.PresentCpuFrame(pixels, w, h);
Quick start — buffer wrapper
var renderOutput = new ImageBufferRenderOutput { Buffer = new ImageBuffer(640, 480) };
Implement IFramePresenter in Raylib or a Silk compose host; implement IGpuFramePresenter when importing native GPU handles.
API
| Type | Role |
|---|---|
IRenderOutput |
TryGetCpuPixels from a backend |
IFramePresenter |
PresentCpuFrame to a host surface |
IRenderGpuSurface |
Opaque GPU handle + dimensions |
ICpuBackedGpuSurface |
GPU surface readable via CPU staging copy |
IGpuFramePresenter |
PresentGpuFrame for native handles |
ImageBufferRenderOutput |
IRenderOutput over ImageBuffer |
Key / MouseButton |
Shared input enums for presentation hosts |
Backends implement IRenderOutput; presenters consume CPU pixels or GPU surfaces without referencing specific backends.
Related
| Package | Role |
|---|---|
Novolis.Silk |
GLFW/OpenGL window loop and blit (novolis-silk) |
Novolis.Rendering.Presentation.Raylib |
Raylib texture presenter |
Novolis.Rendering.Runtime |
IRayTracingBackend.Output |
Novolis.Rendering.Abstractions |
ImageBuffer pixel storage |
More documentation
| 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
- Novolis.Math.Geometry (>= 2026.1.1.68)
- Novolis.Rendering.Abstractions (>= 2026.1.1.104)
NuGet packages (19)
Showing the top 5 NuGet packages that depend on Novolis.Rendering.Presentation.Abstractions:
| Package | Downloads |
|---|---|
|
Novolis.Rendering.Runtime
Flat runtime scene structures and ray tracing backend contracts. |
|
|
Novolis.Rendering.Backends.Cpu
CPU path tracing backend with progressive accumulation. |
|
|
Novolis.Avalonia.Rendering
Avalonia hosts for Novolis.Rendering.Planar (OpenGL) and CPU RGBA frames. |
|
|
Novolis.Avalonia.Raylib
Avalonia host control for embedded Raylib viewports (hidden GLFW + RGBA streaming). |
|
|
Novolis.Rendering.Backends.Vulkan
Vulkan-named path tracing backend. GPU Shaderc/Vulkan lives in Novolis.Silk.Compute; this package keeps IRayTracingBackend via CPU fallback. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.1.104 | 339 | 11/10/2026 |
| 2026.1.1.98 | 361 | 11/9/2026 |
| 2026.1.1.97 | 177 | 11/9/2026 |
| 2026.1.1.96 | 178 | 11/9/2026 |
| 2026.1.1.95 | 180 | 11/9/2026 |
| 2026.1.1.94 | 174 | 11/9/2026 |
| 2026.1.1.93 | 167 | 11/9/2026 |
| 2026.1.1.92 | 175 | 11/9/2026 |
| 2026.1.1.91 | 178 | 11/9/2026 |
| 2026.1.1.90 | 258 | 11/9/2026 |
| 2026.1.1.89 | 197 | 11/8/2026 |
| 2026.1.1.88 | 195 | 11/8/2026 |
| 2026.1.1.87 | 192 | 11/8/2026 |
| 2026.1.1.86 | 682 | 10/18/2026 |
| 2026.1.1.84 | 381 | 10/18/2026 |
| 2026.1.1.83 | 276 | 10/18/2026 |
| 2026.1.1.82 | 356 | 10/12/2026 |
| 2026.1.1.80 | 185 | 10/12/2026 |
| 2026.1.1.79 | 189 | 10/12/2026 |
| 2026.1.1.78 | 206 | 10/11/2026 |