A FrameBuffer holds all the data related to the usual OpenGL FrameBufferObjects. The attachments field gets mapped to the different possible GLCOLORATTACHMENTs, which is bound by GLMAXCOLORATTACHMENTS, and to one of either a GLDEPTHATTACHMENT or GLDEPTHSTENCILATTACHMENT.


Holds the id, format and attachment of an OpenGL RenderBuffer. RenderBuffers cannot be read by Shaders.


Constructor for a normal array, with color or Abstract Arrays as elements. So Array{Real, 2} == Texture2D with 1D Colorant dimension Array{Vec1/2/3/4, 2} == Texture2D with 1/2/3/4D Colorant dimension Colors from Colors.jl should mostly work as well


Constructor for empty initialization with NULL pointer instead of an array with data. You just need to pass the wanted color/vector type and the dimensions. To which values the texture gets initialized is driver dependent


Statically sized uniform buffer. Supports push!, but with fixed memory, so it will error after reaching it's preallocated length.

Pre allocates an empty buffer with `max_batch_size` size
which can be used to store multiple uniform blocks of type T

Returns the alignment of the Type of T as assumed in, returning a tuple with the first element being the 'base' alignment, and the second the total size inside memory.

separate(f, A)

Separates the true and false part of A. Single values get passed into f.