|
1 |
| -# Silk.NET |
2 |
| -[](https://nuget.org/packages/Silk.NET) [](https://dev.azure.com/UltzOS/Silk.NET/_packaging?_a=feed&feed=Experimental) [](https://dev.azure.com/UltzOS/Silk.NET/_build/latest?definitionId=2&branchName=master) [](https://discord.gg/DTHHXRt) |
| 1 | +<h1 align="center"> |
| 2 | + <a href="#"><img align="center" src="documentation/readme/wordmark480.png" height="96"></a> |
| 3 | + <br /> |
| 4 | +</h1> |
| 5 | +<div align="center"> |
3 | 6 |
|
4 |
| -Silk.NET is a high-speed, advanced library, providing bindings to popular low-level APIs such as OpenGL and OpenAL. Use Silk.NET to add cross-platform 3D graphics, audio, compute and haptics to your C# application. |
| 7 | +[](https://nuget.org/packages/Silk.NET) |
| 8 | +[](https://dev.azure.com/UltzOS/Silk.NET/_packaging?_a=feed&feed=Experimental) |
| 9 | +[](https://github.com/dotnet/Silk.NET/actions/workflows/build.yml) |
| 10 | +[](https://discord.gg/DTHHXRt) |
5 | 11 |
|
6 |
| -Silk.NET works on any .NET Standard 2.0 compliant platform. This includes Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+. |
| 12 | +</div> |
7 | 13 |
|
8 |
| -# Features |
9 |
| -- **Performance**: We use lesser-known techniques for our native interop which makes our bindings blazing fast. |
10 |
| -- **Up-to-date**: We've built Silk.NET around the latest versions of the Khronos specifications. This means that Silk.NET includes OpenGL 4.6, OpenGLES 3.2, Vulkan 1.2 (and its **NVIDIA and KHR ray-tracing** extensions), and more. |
11 |
| -- **High-level utilities**: We provide high-level abstractions around Windowing and Input APIs, which means your apps can run on any platform without changing a single line. |
12 |
| -- **Game-ready**: Making games or game engines with Silk.NET is a breeze as you already have everything a game needs - Graphics, Audio, Input, and Windowing; all in one product! |
| 14 | +<div> |
| 15 | + |
| 16 | +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, and DirectX. |
| 17 | + |
| 18 | +Use Silk.NET to spruce up applications with cross-platform 3D graphics, audio, compute and haptics! |
| 19 | + |
| 20 | +Silk.NET works on any .NET Standard 2.0 compliant platform, including .NET 5.0, Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+. |
| 21 | + |
| 22 | +</div> |
| 23 | +<br /> |
| 24 | +<div> |
| 25 | + <a href="https://dotnetfoundation.org" align="right"><img src="https://dotnetfoundation.org/img/logo_v4.svg" alt=".NET Foundation" class="logo-footer" width="72" align="left"> |
| 26 | + <a><br/> |
| 27 | + Proud to be an official project under the benevolent <a href="https://dotnetfoundation.org">.NET Foundation</a> umbrella. </a> |
| 28 | +</div> |
| 29 | + |
| 30 | +<br /> |
| 31 | + |
| 32 | +<h1 align="center">Features</h1> |
| 33 | + |
| 34 | +### Performance |
| 35 | +Having poured lots of hours into examining generated C# code and its JIT assembly, you can count on us to deliver blazing fast bindings with negligible overhead induced by Silk.NET! |
| 36 | + |
| 37 | +### Up-to-date |
| 38 | +With an efficient bindings regeneration mechanism, we are committed to ensuring our bindings reflect the latest specifications with monthly updates generated straight from the upstream sources. |
| 39 | + |
| 40 | +### High-level utilities |
| 41 | +In addition to providing high-speed, direct, and transparent bindings, we provide high-level utilities and wrappers to maximise productivity in common workloads such as platform-agnostic abstractions around Windowing and Input, bringing your apps to a vast number of platforms without changing a single line! |
| 42 | + |
| 43 | +### Good-to-go |
| 44 | +Silk.NET caters for anything you could need in swift development of multimedia, graphics, compute applications. Silk.NET is an all-in-one solution, complete with Graphics, Compute, Audio, Input, and Windowing. |
| 45 | + |
| 46 | +<h1 align="center">The team</h1> |
13 | 47 |
|
14 |
| -# The team |
15 | 48 | We currently have the following maintainers:
|
16 | 49 | - [Dylan P.](https://github.com/Perksey) from [Ultz](https://github.com/Ultz)
|
17 | 50 | - [Kai J.](https://github.com/HurricanKai) from the open-source community
|
18 | 51 |
|
19 |
| -As well as some helpers from the community: |
20 |
| -- [Vivian J.](https://github.com/devvoid) - a community member who basically wrote half the library. |
21 |
| -- [Maximiliano L.](https://github.com/maxilevi) - developer of [Project Hedra](https://projecthedra.com/) using Silk.NET. |
22 |
| -- [Aaron P.](https://github.com/AzyIsCool) - director at [Ultz](https://github.com/Ultz). |
23 |
| -- [Frederik A.](https://github.com/frederikja163) - imparting knowledge on those using Silk.NET. |
24 |
| -- [Robert S.](https://github.com/Pyrdacor) - developer of [freeserf.net](https://github.com/Pyrdacor/freeserf.net) and lead developer of [Silk UI](https://github.com/Ultz/SilkUI) |
| 52 | +In addition, the Silk.NET working group help drive larger user-facing changes providing key consultation from the perspective of dedicated users and professionals. |
25 | 53 |
|
26 |
| -# Building from source |
| 54 | +<h1 align="center">Building from source</h1> |
27 | 55 |
|
28 | 56 | - Make sure you have at least the .NET 5 SDK installed, preferably with Visual Studio's .NET Framework and Xamarin workloads too.
|
29 | 57 | - Clone the repository
|
30 | 58 | - Run build.sh, build.cmd, build.ps1, or `nuke build`. To build for iOS and Android, add the `--feature-sets ios android` arguments.
|
31 | 59 |
|
32 |
| -# Contributing |
| 60 | +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`. |
| 61 | + |
| 62 | +Some projects may not build properly without being configured to use Desktop MSBuild (i.e. the MSBuild shipped with Visual Studio). As a result, you will ideally need to be on Windows and have Visual Studio 2019 Community (or greater) installed with .NET Core and Xamarin workloads. If you don't have this (i.e. because you're on Linux or Mac), you can still develop Silk.NET in a limited capacity but you will not be able to work on mobile workloads. |
| 63 | + |
| 64 | +<h1 align="center">Contributing</h1> |
33 | 65 |
|
34 | 66 | Silk.NET uses and encourages [Early Pull Requests](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6). Please don't wait until you're done to open a PR!
|
35 | 67 |
|
36 |
| -1. Install [Git](https://git-scm.com/downloads) and the [.NET Core SDK](https://www.microsoft.com/net/download) |
37 | 68 | 1. [Fork Silk.NET](https://github.com/Ultz/Silk.NET/fork)
|
38 |
| -1. Create a branch on your fork. |
39 |
| -1. Add an empty commit to start your work off (and let you open a PR): `git commit --allow-empty -m "start of [thing you're working on]"` |
40 |
| -1. Open a Pull request with `[WIP]` in the title. Do this **before** you actually start working. |
41 |
| -1. Make your commits in small, incremental steps with clear descriptions. |
42 |
| -1. Tag a maintainer when you're done and ask for a review! |
| 69 | +2. Add an empty commit to a new branch to start your work off: `git commit --allow-empty -m "start of [thing you're working on]"` |
| 70 | +3. Once you've pushed a commit, open a [**draft pull request**](https://github.blog/2019-02-14-introducing-draft-pull-requests/). Do this **before** you actually start working. |
| 71 | +4. Make your commits in small, incremental steps with clear descriptions. |
| 72 | +5. Tag a maintainer when you're done and ask for a review! |
43 | 73 |
|
44 |
| -Some projects may not build properly without being configured to use Desktop MSBuild (i.e. the MSBuild shipped with Visual Studio). As a result, you will ideally need to be on Windows and have Visual Studio 2019 Community (or greater) installed with .NET Core and Xamarin workloads. If you don't have this (i.e. because you're on Linux or Mac), you can still develop Silk.NET in a limited capacity but you will not be able to work on mobile workloads. |
| 74 | +<h1 align="center">Further resources</h1> |
45 | 75 |
|
46 |
| -# Documentation |
| 76 | +- Several examples can be found in the [examples folder](https://github.com/Ultz/Silk.NET/tree/master/examples) |
| 77 | +- Come chat with us on [Discord](https://discord.gg/DTHHXRt)! |
47 | 78 |
|
48 |
| -Nothing here yet, but don't worry - we're working on it. |
| 79 | +<h1 align="center">Licensing and governance</h1> |
49 | 80 |
|
50 |
| -Several examples can be found in the `examples` folder. |
| 81 | +Silk.NET is distributed under the very permissive MIT/X11 license and all dependencies are distributed under MIT-compatible licenses. |
51 | 82 |
|
52 |
| -You can find the Lab in the `src/Lab` folder. While many of these projects demonstrate functionality of Silk, these are intended more as experiments and tests for the library itself, and often demonstrate bad programming practices. Use with caution! |
| 83 | +Silk.NET is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project, and has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct). |
53 | 84 |
|
54 |
| -# Join the conversation |
| 85 | +--- |
55 | 86 |
|
56 |
| -Come chat with us on [Discord](https://discord.gg/DTHHXRt)! |
| 87 | +<div> |
| 88 | + <a href="https://www.jetbrains.com/?from=Silk.NET" align="right"><img src="documentation/readme/jetbrains.svg" alt="JetBrains" class="logo-footer" width="72" align="left"> |
| 89 | + <a><br/> |
| 90 | + |
| 91 | +Special thanks to [JetBrains](https://www.jetbrains.com/?from=Silk.NET) for supporting us with open-source licenses for their IDEs. </a> |
| 92 | +</div> |
57 | 93 |
|
58 |
| -# License |
59 |
| -Silk.NET is distributed under the very permissive MIT/X11 license and all dependencies are distributed under MIT-compatible licenses. |
|
0 commit comments