I'm preparing to add support for context objects to DerelictGL3.
Meaning, you'll be able to do something like this:
GLContext!( GLVersion.GL32 ) ctx;
DerelictGL3.load( ctx ); // Load the shared library
DerelictGL3.reload( ctx ); // Load the context-dependent stuff.
The goal is to allow this with a version switch, but to let the current
behavior continue as the default. That way, if you don't need or care
about context objects, you can keep doing things the way you are now. If
you do want context objects, you can use them without the other stuff
getting in the way.
The impetus for this came from a recent pull request that I initially
rejected but came to find a good idea after giving it some thought. I'll
go into the details later when I write some documentation about it. For
now, I need help.
The first phase of the change, refactoring the existing architecture, is
done except for the testing. If you are a DerelictGL3 user (from
DerelictOrg), I need to know if the changes I've made have broken
anything. I can attest that a different project I'm working on compiles
and runs fine on Windows, but it only uses a subset of OpenGL. I'll be
glad to have others verify the same. I can also say that it compiles on
Linux (in my VirtualBox installation of 32-bit Mint), but beyond that I
haven't a clue. Finally, I have no way to compile or test the Mac side,
so I don't know if there are any problems there or not.
If you are currently using DerelictOrg's DerelictGL3, you can test the
new branch simply by changing the dependency in your package/dub.json
file from "~master" to "~contexts". Then you can let me know the results
in the DerelictOrg forum or, preferably, send me a pull request.