Configuring DerelictGL3

Mike Parker aldacron at gmail.com
Thu Jun 7 05:44:46 UTC 2018


On Thursday, 7 June 2018 at 02:47:12 UTC, Entity325 wrote:
>

>
> I added the line, "mixin glContext!(GLVersion.gl33);" after the 
> import statement. I didn't do anything with the context because 
> I assumed SDL2 handled that, and creating my own would likely 
> break the code.
>

You aren't mixing in the deprecated symbols. From the 
documentation [1]:

"glFreeFuncs takes an optional paramter that will include 
deprecated types and function pointer declarations. This is false 
by default, but can be enabled with, e.g., mixin 
glFreeFuncs(GLVersion.gl33, true);."

So step-by-step:

1. Set version=DerelictGL3_CustomFreeFuncs on the command line 
(via dub's "versions" directive).

2. Create a module specifically for importing DerelictGL, e.g. 
mygl.d, and add this:

module mygl;
public import derelict.opengl;
mixin glFreeFuncs!(GLVersion.gl33, true);

3. In any  module where you need opengl, import mygl instead of 
derelict.opengl.

With this, Derelict will attempt to load all OpenGL functions, 
including the deprecated ones, up to 3.3. You'll just need to 
make sure you have the proper context created to support them.

FYI, I'm working on a new bindings package that's @nogc and 
-betterC comaptible (Derelict being neither). I've taken a 
completely different approach there, making everything 
configurable via commandline versions. For anyone interested in 
seeing what it looks like, I set up a github group a while back 
and have the loader package and the SDL bindings up now (though 
not yet in the dub repository). I've got most of OpenGL and GLFW 
done and will upload them in the not-too-distant future, to be 
followed by ports of other commonly-used Derelict packages. I'll 
push everything to the dub repo when I'm ready to formally make 
the announcement. It's best to consider the Derelict packages in 
maintenance mode, though I plan to keep supporting them for a 
long while to come.

[1]: http://derelictorg.github.io/packages/gl3/#using-derelictgl3
[2]: https://github.com/BindBC



More information about the Digitalmars-d-learn mailing list