composable opengl rendering combinators