MASS4.Guinevere.Vulkan.SilkNET
6.0.0
dotnet add package MASS4.Guinevere.Vulkan.SilkNET --version 6.0.0
NuGet\Install-Package MASS4.Guinevere.Vulkan.SilkNET -Version 6.0.0
<PackageReference Include="MASS4.Guinevere.Vulkan.SilkNET" Version="6.0.0" />
<PackageVersion Include="MASS4.Guinevere.Vulkan.SilkNET" Version="6.0.0" />
<PackageReference Include="MASS4.Guinevere.Vulkan.SilkNET" />
paket add MASS4.Guinevere.Vulkan.SilkNET --version 6.0.0
#r "nuget: MASS4.Guinevere.Vulkan.SilkNET, 6.0.0"
#:package MASS4.Guinevere.Vulkan.SilkNET@6.0.0
#addin nuget:?package=MASS4.Guinevere.Vulkan.SilkNET&version=6.0.0
#tool nuget:?package=MASS4.Guinevere.Vulkan.SilkNET&version=6.0.0
Guinevere.Vulkan.SilkNET
Modern Vulkan API using Silk.NET.
Basic Usage
using Guinevere;
namespace Example;
public abstract class Program
{
public static void Main()
{
var gui = new Gui();
using var win = new GuiWindow(gui);
win.RunGui(() =>
{
gui.DrawRect(gui.ScreenRect, Color.Blue);
gui.DrawText("Hello, world!");
});
}
}
Rendering and frame pacing
Skia draws on the GPU straight into the swapchain images. When a Skia Vulkan context cannot be created, Skia rasterizes on the CPU and the frame is copied into the swapchain image; GUINEVERE_RENDERER=raster forces that path. CanvasRenderer.IsGpuAccelerated reports which one runs.
The window renders on demand by default: it waits for input between frames. It renders a few frames after each input event, continuously while a button or key is held, whenever keyed animations, style transitions and timed controls (tooltips, toasts, caret blink, indeterminate progress) are moving, and at least every Pacing.MaxIdleSeconds (0.5 s). Content that changes without input, such as a playing game viewport or progress from a background task, calls gui.RequestFrame() (safe from any thread) or gui.RequestFrameIn(seconds) for a timer. Games and other content that changes every frame can render continuously instead:
using var win = new GuiWindow(gui);
win.Pacing.OnDemand = false;
GUINEVERE_PACING=on-demand or continuous overrides the setting at run time.
Linux window selection
To use X11/XWayland for a custom application bar, set this preference before creating the first GLFW window:
Environment.SetEnvironmentVariable("SILKNET_USE_WAYLAND", "0");
using var window = new GuiWindow(gui);
This Guinevere integration translates the setting into GLFW's X11 initialization hint. It requires an available X11/XWayland display; other values leave GLFW's default selection in place. Native Wayland cannot provide the desktop-coordinate movement used by AppBar, so its automatic native-decoration fallback stays enabled. Window-system selection applies at startup; native decorations can be changed later.
License
This project is licensed under the MIT License. See the LICENSE file for details.
| 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
- MASS4.Guinevere (>= 6.0.0)
- Serilog (>= 4.4.0)
- Silk.NET.Input (>= 2.23.0)
- Silk.NET.Input.Extensions (>= 2.23.0)
- Silk.NET.Vulkan (>= 2.23.0)
- Silk.NET.Vulkan.Extensions.EXT (>= 2.23.0)
- Silk.NET.Vulkan.Extensions.KHR (>= 2.23.0)
- Silk.NET.Windowing.Common (>= 2.23.0)
- Silk.NET.Windowing.Glfw (>= 2.23.0)
- SkiaSharp (>= 4.153.1)
- SkiaSharp.NativeAssets.Linux (>= 4.153.1)
- SkiaSharp.Views.Desktop.Common (>= 4.153.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 6.0.0 | 0 | 10/10/2026 |
| 5.9.0 | 119 | 10/6/2026 |
| 5.8.0 | 105 | 10/5/2026 |
| 5.7.0 | 179 | 10/3/2026 |
| 5.6.1 | 133 | 10/2/2026 |
| 5.6.0 | 88 | 10/2/2026 |
| 5.4.0 | 117 | 9/30/2026 |
| 5.3.0 | 99 | 9/29/2026 |
| 5.2.0 | 114 | 9/28/2026 |
| 5.1.0 | 93 | 9/27/2026 |
| 5.0.0 | 107 | 9/26/2026 |
| 4.2.0 | 119 | 9/25/2026 |
| 4.1.0 | 120 | 9/23/2026 |
| 4.0.0 | 102 | 9/20/2026 |
| 3.1.0 | 112 | 9/19/2026 |
| 3.0.0 | 105 | 9/18/2026 |
| 2.1.0 | 112 | 9/17/2026 |
| 2.0.1 | 99 | 9/14/2026 |