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