This is a fork of Silk.NET for use by Exanite.Engine. While changes to this repo will still be under the same license as the official Silk.NET repo, the changes to this repo will be intended for use by Exanite.Engine only and no support will be given for any other use case.
Please find the original repo here: https://github.com/dotnet/Silk.NET
The primary differences with this fork are the following:
- Packages will be distributed under the
ExaniteNuGet prefix. - Bindings not used by Exanite.Engine are not maintained and will not be distributed.
- Additional bindings required by Exanite.Engine are added (FreeType, HarfBuzz, Slang, VulkanMemoryAllocator).
Silk.NET is your one-stop-shop for high-speed .NET multimedia, graphics, and compute; providing bindings to popular low-level APIs such as OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX.
Use Silk.NET to spruce up applications with cross-platform 3D graphics, audio, compute and haptics!
Silk.NET works on any .NET Standard 2.0 compliant platform, including .NET 6.0, Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+.
Prerequisites
- .NET 6 SDK and .NET 7 SDK
- Android, iOS, and Mac Catalyst workloads (use
dotnet workload install android ios maccatalystto install them)- On Linux,
iosandmaccatalystshould be omitted as they are not available
- On Linux,
- Android SDK versions 31, 33, and 34 with NDK tools installed
- On Windows, for best results, this should be installed into
C:\ProgramData\Android\android-sdk
- On Windows, for best results, this should be installed into
- Java JDK 11+
- Visual Studio 2022 Community version 17.0 or later (optional)
Instructions
- Clone the repository
- Note: Avoid performing a recursive clone as the submodules are not necessary for a normal build
- Run
build.sh,build.cmd,build.ps1, ornuke compile- On Linux, you may need to pass
--msbuild-properties AndroidSdkDirectory=/path/to/android/sdk
- On Linux, you may need to pass
- Use the built assemblies
- To get
.nupkgs that you can use with NuGet instead, usenuke pack
- To get
There are more advanced build actions you can do too, such as FullBuild, Pack, FullPack, among others which you can view by doing nuke --plan.
This fork of Silk.NET does not currently accept contributions. If you would like to contribute to the original Silk.NET project, please refer to the original repo: https://github.com/dotnet/Silk.NET
This fork of Silk.NET does not accept funding. If you would like to support the original Silk.NET project, please refer to the original repo: https://github.com/dotnet/Silk.NET
The original Silk.NET repo is distributed under the MIT license and all changes made to this fork are also distributed under the MIT license.