Glamour – An opengl wrapper for D
David
d at dav1d.de
Fri Jul 27 10:57:02 PDT 2012
Am 27.07.2012 15:29, schrieb David:
>> 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.
>
> I was about to implement it, but I thought it isn't necassary, but maybe
> I was just wrong. I'll think about it (I will definitly add a template
> to glamour.utils which calls the OpenGL method and adds a check)
Done. Added the template function and every call is checked (if compiled
with -debug).
>> 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.
>
> Good idea.
Done. (If compiled with -debug)
>> 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.
>
> Really, where?
> If you mean the `unit` param for Samplers/Textures, that is needed,
> sometimes you just wanna bind the Sampler/Texture to a specific unit.
This stays as it is.
>> Shader.shaders: perhaps rename to shaderSources?
>
> Good idea.
Renamed.
>> The ElementBuffer and Buffer constructors accepting a pointer will not
>> compile, the pointer version of set_data requires a size argument.
>
> Right.
Fixed.
More information about the Digitalmars-d-announce
mailing list