decoupling a thing that draws with rectangles from opengl
generalised opengl graphics