- 
                Notifications
    You must be signed in to change notification settings 
- Fork 107
Home
Anyone who wanted to develop a C# application based on OpenGL was faced with the choice of wrapper library exposing the OpenGL entry points and constants.
This project was started years ago to to fill in gaps of some existing libraries (such as Tao.Framework). I wished to have an OpenGL wrapper library that:
- Matches as close as possible the OpenGL specification;
- Integrates fluently with the target language (C# in this case):
- Function overloads;
- Strongly typed enumerations;
 
- Good documentation integration;
- Maintainable code and updated OpenGL specification.
When this project was started effectively, the OpenGL XML specification was just published by Khronos; previous projects was based on old and unmaintainable .spec files. Although I was not satisfied by the currently available XML specification, I decided to create a code generator able to generate a wrapper library for OpenGL: OpenGL.NET.
Where the project is going? The following principles should guide contributors in the project development:
- Portability: the project shall be executable in the following environments
- Windows with Microsoft .NET Framework
- Linux with Mono;
- Embedded systems (such as Windows Embedded or Android).
 
- Scalability:
The project has some unit test that can be used to test specific API methods. Have fun in writing graphical tests!
The repository consists of multiple directories located at the root; each directory define a project that generates applications and libraries, or simply group a set of information.
- BindingsGen: code generator tool, which generates the updated OpenGL.Net library using the OpenGL XML Specification.
- OpenGL.Net: this library is the main project of the repository. Somehow everything else is based on this project. Most of the code of this project is automatically generated by another application (BindingsGen).
- OpenGL.Hal: advanced OpenGL abstraction for managing graphic resources in a object-oriented framework.