A port of SharpGL to .Net 6.0.
Unlock the power of OpenGL in any .NET application. SharpGL[X] wraps all modern OpenGL features, provides helpful wrappers for advanced objects like Vertex Buffer Arrays and shaders, as well as offering a powerful Scene Graph and utility library to help you build your projects. A new approach to DesktopApp & Game design and development.
Will be removing WinForm and WPF samples as I create a toolbox and a cross-platform implementation of DesktopApp for customary forms applications. If someone wants to update WinForm and WPF implementations as I update and modernize to newer features of C# 7.0, I'm good with that. Unit tests and projects will be updated to include a couple of libraries I've developed over time that make my life easier.
- Getting Started
- Developer Guide
- Documentation
- SharpGL Visual Studio Extensions
- Credits, Sponsorship & Thanks
- Built with SharpGL
SharpGL is made up of a number of packages, you can install whichever package or packages you need!
Install SharpGL packages with NuGet, either by using the Package Explorer or the Package Manager tool, e.g:
PM> Install-Package SharpGL
SharpGL has built in support for OpenGL support, newer functions can be loaded on demand as needed. The table below shows the compatibility across frameworks and platforms.
OpenGL
Currently SharpGL has built in bindings for OpenGL 4.0 - functions from later versions can be loaded at runtime as needed.
Framework Compatibility
All components support the .NET Framework 4.0 onwards, .NET Core 3.0 onwards and .NET Standard 2.1 onwards. Some components also support earlier versions.
Component | .NET Framework | .NET Core | .NET Standard |
---|---|---|---|
SharpGL |
x | 6.0+ | x |
SharpGL.SceneGraph |
x | 6.0+ | x |
SharpGL.Serialization |
x | 6.0+ | x |
Platform Comptability to be updated...
Compatability across platforms is supported via framework specific components.
To build the code, clone the repo and open the SharpGL, Samples or Tools solution. The Extensions solution is used for the Visual Studio Project Templates and requires additional components - you can find out more on the Wiki on the 'Developing SharpGL' page.
You can also use the following scripts to run the processes:
Script | Notes |
---|---|
config.ps1 |
Ensure your machine can run builds by installing necessary components such as nunit . Should only need to be run once. |
build.ps1 |
Build all solutions. Ensures that we build both 32/64 bit versions of native components. |
test.ps1 |
Run all tests, including those in samples. |
coverage.ps1 |
Create a coverage report. Reports are written to ./artifacts/coverage |
pack.ps1 |
Create all of the SharpGL NuGet packages, which are copied to ./artifacts/packages . |
These scripts will generate various artifacts which may be useful to review:
artifacts\
\tests # NUnit Test Reports
\coverage # Coverage Reports
\packages # NuGet Packages
To make and publish a release:
- Update the
*.csproj
files with the new version number - Create the version tag (e.g.
git tag v3.2.1
) - Push the code and tags (e.g.
git push --follow-tags
)
AppVeyor will automatically push the release to NuGet and GitHub.
All documentation is available on the Wiki.
There are project templates available for SharpGL WinForms and WPF projects - just search for SharpGL on the Visual Studio Extensions gallery, or get the extensions directly:
Please be aware that these extensions have not been maintained over time and I am looking for support in maintaining them.
SharpGL is written and maintained by me. Special thanks go to the following contributors:
robinsedlaczek
- Code and documentation updates, tireless patience while I get through a backlog of work!odalet
- amazing work on internationalization and making the serialization code work in all locales
NDepend
SharpGL is proudly sponsored by NDepend! Find out more at www.NDepend.com.
Red Gate
Many thanks to Red Gate who have kindly provided SharpGL with a copy of their superb .NET Developer Bundle
JetBrains
Thanks for JetBrains for sponsoring SharpGL with Resharper!
If you've got a project that uses SharpGL and you'd like to show it off, just add the details here in a PR!
Checkout https://sites.google.com/site/gahvogel/ to see a free, open source project which supports aerodynamics!
This is the very first open source Precision Agricultural App! Built by Brian Tischler, you can see the discussions and excitement on this project with farmers across the world!