+Stores uniform values in a block of memory.
+
+For named uniform blocks the values are stored according to the reflected
+layout of the block, ready for use by shaders. For the default uniform block,
+the location of the uniform is multiplied by 16 to obtain the memory offset.
+
+Applications normally don't need to deal with UniformBlocks directly. They're
+managed by the ProgramData class, which provides a higher-level interface for
+setting uniform values.