The current implementation of the OpenGL Buffer creation mechanism involves a diamond inherence from the OpenGL{XYZ}Buffer classes to the Buffer base class through the {XYZ}Buffer abstract class and the OpenGLBuffer abstract class.
This is not only a bad design strategy but can also slow down the code in the long run when a lot of buffers are built and managed.
Redesigning the entire Buffer class hierarchy and the creation pipeline is highly advisable.
Methods to consider:
Create a OpenGLBufferFactory which can create the different OpenGL{XYZ}Buffer classes which can avoid the diamond hierarchy and also reduce code repetition.
The current implementation of the OpenGL Buffer creation mechanism involves a diamond inherence from the
OpenGL{XYZ}Buffer
classes to theBuffer
base class through the{XYZ}Buffer
abstract class and theOpenGLBuffer
abstract class. This is not only a bad design strategy but can also slow down the code in the long run when a lot of buffers are built and managed.Redesigning the entire Buffer class hierarchy and the creation pipeline is highly advisable. Methods to consider:
OpenGLBufferFactory
which can create the differentOpenGL{XYZ}Buffer
classes which can avoid the diamond hierarchy and also reduce code repetition.