luca-piccioni / OpenGL.Net

Modern OpenGL bindings for C#.
MIT License
578 stars 110 forks source link

Make OpenGL.Net portable by decoupling from WinForms #13

Closed prasannavl closed 8 years ago

prasannavl commented 8 years ago

Technically, there's no reason for OpenGL.Net to be coupled into WinForms, however, it seemed to have been using Control from WinForms through, when it was completely unnecessary. The Handle as IntPtr could be directly passed through, and can be completely decoupled from WinForms.

These changes allow it to be used in environments without WinForms. Eg: Here's an example of that uses WinApi, a raw C# wrapper to the Win32 API. So, it provides a much simpler model without the overhead of WinForms.

Sample: https://github.com/prasannavl/WinApi/blob/master/Samples/Sample.OpenGL/Program.cs

Note: However, since GLControl still is in the same project, WinForms dependency is still brought along. Separating it into a different project could be further done to drop the dependency completely.

luca-piccioni commented 8 years ago

This PR has been superseded by a recent commit.

As side note, I should say that the OpenGL.Net cannot be completely platform agnostic, since the OpenGL.Gl statc constructor must create a native window in order to query platform extensions. Indeed there is need to implement native window wrappers for each supported platform.