Aardworx.Rendering.WebGL 1.2.6

There is a newer version of this package available.
See the version list below for details.
dotnet add package Aardworx.Rendering.WebGL --version 1.2.6
                    
NuGet\Install-Package Aardworx.Rendering.WebGL -Version 1.2.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aardworx.Rendering.WebGL" Version="1.2.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aardworx.Rendering.WebGL" Version="1.2.6" />
                    
Directory.Packages.props
<PackageReference Include="Aardworx.Rendering.WebGL" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aardworx.Rendering.WebGL --version 1.2.6
                    
#r "nuget: Aardworx.Rendering.WebGL, 1.2.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Aardworx.Rendering.WebGL@1.2.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aardworx.Rendering.WebGL&version=1.2.6
                    
Install as a Cake Addin
#tool nuget:?package=Aardworx.Rendering.WebGL&version=1.2.6
                    
Install as a Cake Tool

WebAssembly libraries for Aardvark

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Aardworx.Rendering.WebGL:

Package Downloads
Aardworx.WebAssembly.Dom

WebAssembly libraries for Aardvark

Aardworx.WebAssembly.WebXR

WebAssembly libraries for Aardvark

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.8 173 5/20/2026
1.2.7 200 5/18/2026
1.2.6 206 4/28/2026
1.2.5 186 4/26/2026
1.2.4 185 4/26/2026
1.2.3 192 4/26/2026
1.2.2 186 4/26/2026
1.2.1 181 4/25/2026
1.2.0 185 4/25/2026
1.1.14 402 11/6/2025
1.1.13 328 10/22/2025
1.1.12 348 10/16/2025
1.1.11 351 2/22/2025
1.1.10 337 10/21/2024
1.1.9 365 10/19/2024
1.1.8 359 10/1/2024
1.1.7 360 5/13/2024
1.1.6 335 9/27/2023
1.1.5 375 9/27/2023
1.1.4 302 9/25/2023
Loading failed

picked up Aardvark.Dom 1.1.7 (MSAA picking, per-object snap radius, plain-float pick encoding). Validated end-to-end on WebGL — desktop GL and iOS Safari both pick correctly with `Samples 4`.
`IRuntime.ReadPixels` PBO path was sizing the scratch PBO via `img.Array.Length` (element count) instead of bytes — broke for any non-byte format. Aardvark.Dom's pick reads `Rgba32f` 33×33 = 17,424 bytes; old code allocated a 4,356-byte PBO and `glReadPixels` errored with `INVALID_OPERATION: readPixels: buffer is not large enough for dimensions`. Fixed to `System.Buffer.ByteLength(img.Array)`.
`IRuntime.Clear` color-attachment dispatch was 2-way (float / signed-int — both routed through `glClearBufferfv` / `glClearBufferiv`). WebGL is strict about clear-value vs attachment signedness, so any clear of an unsigned-integer color attachment threw `GL_INVALID_OPERATION: glClearBufferiv: No defined conversion between clear value and attachment format`. Made it a 3-way `Choice` (float / signed-int / unsigned-int) selecting the matching `glClearBufferfv` / `glClearBufferiv` / `glClearBufferuiv` call based on `TextureFormat.isIntegerFormat` + `TextureFormat.isSigned`.
added `R/Rg/Rgb/Rgba 32ui` to `Pixelbuffer.toPixelFormatAndType` (mapping `RedInteger`…`RgbaInteger` + `UnsignedInt`) and `R/Rg/Rgb/Rgba 32i` + `32ui` rows to `TextureFormatVisitor` so `PixImage<int32>` / `PixImage<uint32>` can be allocated for downloads of those formats.
corrected unsigned-integer attachment shader-output type-mapping in `Shader.fs`: `Rgba32ui`/`Rgba16ui`/`Rgba8ui`/`Rgb32ui`/`Rgb16ui`/`Rgb8ui` now map to `typeof<V4ui>`/`typeof<V3ui>` (was `typeof<V4i>` / `typeof<V3i>`), so FShade emits `out uvec4` matching the actual buffer format. WebGL rejects `out ivec4 → unsigned-integer attachment` mismatches.
updated `Examples/Dom`: replaced the orbit playground with a three-teapot pixel-snap demo (Red/Green/Blue at radii 0/8/16). Tap a teapot to plant a yellow arrow along the surface normal. Blue uses mode B (`PickViewPosition`) to exercise the FinalB pick path on WebGL. Bound the dev server to `0.0.0.0` so the demo is reachable from a phone over Tailscale/LAN.