Glamour – An opengl wrapper for D
Rene Zwanenburg
renezwanenburg at gmail.com
Fri Jul 27 06:08:04 PDT 2012
Nice work. I did a quick review of your code, and have some
suggestions for possible improvement. Apologies for not creating
a pull request, but I don't have a Git client installed.
Check for errors after every GL call that can generate an error.
Because GL functions fail silently, debugging why your program
misbehaves after a failed GL call is almost as annoying as
finding the cause of heap corruption. Also make sure that every
GL call is covered, or you may get your errors at the wrong
functions. The error code will not reset once it is set, until
glGetError is called. These checks should be disabled in a
release build, because they're quite costly.
All resources are released using a release method, not the
destructor. This is good. But to ease debugging, set the handle
to zero in release(), and check for a zero handle in the
destructor. Log a warning or something like that if the check
fails.
Some functions have overloads for both GLuint's and wrapper
instances. Unless you really need the GLuint versions, it's
probably better to remove these. Users should either use the
wrappers for everything or not at all, anything in between will
cause bloat, ugliness, and errors.
Shader.shaders: perhaps rename to shaderSources?
The ElementBuffer and Buffer constructors accepting a pointer
will not compile, the pointer version of set_data requires a size
argument.
On Thursday, 26 July 2012 at 13:47:42 UTC, David wrote:
> https://github.com/Dav1dde/glamour
>
> Glamour wraps opengl is not an opengl binding. Currently it
> supports:
>
> * Sampler objects
> * Textures (1D, 2D, 2D_ARRAY, 3D)
> * Shaders
> * Buffers (Elementbuffers and "normal" VBOs)
>
> For the shaders a custom format is used:
>
> -----
> vertex:
> // here goes the vertex shader
>
> geometry:
> // here goes the geometry shader (this section can be
> omitted)
>
> fragment:
> // here goes the fragment shader
> -----
>
> Readme/Installation:
> https://github.com/Dav1dde/glamour/blob/master/README.md
> Documentation: http://dav1dde.github.com/glamour/
>
>
> TODO:
> * support more opengl "backends", like statically linked
> opengl (in glamour.gl)
> * polish up the index.d and write a proper installation guide
>
> Pull requests are appreciated.
More information about the Digitalmars-d-announce
mailing list