Releases: graphnode/r3d-cs
v0.8.2
What's Changed
Improved struct ergonomics with auto-generated Span<T> properties, added safe mesh API overloads, and switched to git submodules for upstream tracking.
Note: The native r3d library is still pinned to upstream v0.8.
Struct Ergonomics
- Auto-generate
Span<T>properties for pointer+count field pairs in structs (e.g.InstanceBuffer.Positions,InstanceBuffer.Rotations) - Hide count fields consumed by Span properties as
internalto reduce API surface noise
Mesh API
- Added safe
LoadMesh/UpdateMeshoverloads usingReadOnlySpan<T>instead of raw pointers - Added CustomMesh example demonstrating the safe mesh API
Project Infrastructure
- Replaced
.r3d-upstreamconfig file with a proper git submodule atExternal/r3d - Bindings generator now defaults
--pathto the submodule (no-pneeded) - CI uses
submodules: recursiveinstead of a separate upstream clone step - Updated README with building instructions, submodule workflow, and NuGet prerelease note
Install
dotnet add package R3D-cs --version 0.8.2
Or download from nuget.org.
Commits
- Generate Span properties for pointer+count fields in structs (9bfb420)
- Add safe LoadMesh/UpdateMesh overloads and CustomMesh example (a845f14)
- Hide count fields consumed by Span properties as internal (6364d24)
- "That just sounds like git submodules with extra steps" (787e5fd)
Full Changelog: v0.8.1...v0.8.2
v0.8.1
What's Changed
Improved developer experience by wrapping opaque shader types as value types, eliminating the need for unsafe pointer syntax when working with shaders.
Shader API Improvements
- Opaque types (
ScreenShader,SurfaceShader) now wrap anninthandle, mappingType*toType(by value) andType**toType*automatically - Added generic
SetScreenShaderUniform<T>/SetSurfaceShaderUniform<T>overloads usingref Tinstead ofvoid* - Added
SetScreenShaderChain(ReadOnlySpan<ScreenShader>)overload - Shader example no longer requires
unsafecontext
Code Generator Updates
- Auto-detect opaque types (zero-field structs) in TypeMapper
- Filter section banner comments (e.g.
==== OPAQUE TYPES ====) - Replaced incorrect
<seealso>with<remarks>Native: <c>...</c></remarks>across all generated docs - Regenerated all
.g.csfiles with updated documentation format
CI
- NuGet package version is now derived from git tag, independent of the upstream r3d version — this allows publishing binding-side patches without requiring an upstream r3d update
Install
dotnet add package R3D-cs --version 0.8.1
Or download from nuget.org.
Commits
- Wrap opaque shader types as value types to eliminate pointer syntax (371ab69)
Full Changelog: v0.8.0...v0.8.1
v0.8.0
What's Changed
First stable release of the 0.8.x series.
Tooling
- Bindings generator now auto-detects the upstream r3d version from git tags instead of requiring a manual
--versionflag - Added
.r3d-upstreamfile to pin and track the upstream r3d commit/tag used for generation
CI/CD
- CI now derives the NuGet package version from the git tag, independent of the upstream r3d version — this allows publishing binding-side patches (e.g. doc fixes, API ergonomics) without requiring an upstream r3d update
Other
- Updated README badges and fixed logo URL
Install
dotnet add package R3D-cs --version 0.8.0
Or download from nuget.org.
Commits
- Update README badges and fix logo URL (91d7236)
- Pin upstream version via .r3d-upstream and auto-detect version from git (101bc5a)
Full Changelog: v0.8.0-dev.1...v0.8.0
v0.8.0-dev.1
What's Changed
First development preview for v0.8.0, with updated bindings, new features, CI/CD infrastructure, and packaging fixes.
Bindings & API
- Updated bindings to latest r3d upstream, fixing several bugs
- Added new types:
Capsule,DepthState,StencilState,Penetration,SweepCollision,Importer,ScreenShader,SurfaceShader - Added new enums:
CompareMode,ImportFlags,StencilOp - Split monolithic
R3D.g.csinterop file into per-module files (animation, core, draw, kinematics, lighting, material, mesh, model, probe, etc.) - Updated
Material,Environment,EnvSSR, andDecalstruct layouts to match upstream
New Examples
- Kinematics - Demonstrates the kinematics/physics API
- Shader - Demonstrates custom surface and screen shaders
CI/CD
- Added GitHub Actions CI/CD pipeline for multi-platform native builds (Linux x64, Windows x64) and automatic NuGet publishing
- CI triggers only on release tags
Fixes
- Fixed NuGet packaging issues
- Fixed bindings synchronization issues
- Simplified GenerateBindings tooling (removed RepositoryManager, simplified CLI)
Install
dotnet add package R3D-cs --version 0.8.0-dev.1
Or download the NuGet package from nuget.org.
Commits
- Updated binding to most recent commit to avoid some bugs. (f8d6ebb)
- Update bindings to latest r3d and add Kinematics/Shader examples (8b8ea74)
- Add GitHub Actions CI/CD pipeline for multi-platform native builds and NuGet publishing (8b65d25)
- Update CI to use r3d master branch and ignore Claude local settings (c339779)
- Remove macOS build from CI and simplify GenerateBindings (99d0cfe)
- Simplify CI: Only run on release tags (a5a916a)
- Fix bindings synchronization issues and improve tooling (821ad02)
- Fix NuGet packaging issues and add project badges (61719fc)
Full Changelog: v0.7.0-alpha...v0.8.0-dev.1