Обновить
Комментарии 2

Очень похоже на OpenGL с фиксированным конвейером. Но зачем?
(Да, я понимаю, что это перевод, так, риторический вопрос)

Для простоты, учебный пример ведь.
Если делать по современному с ноля, придется объяснять и про конвейер, поэтому многие обвязки так и живут в парадигме фиксированного конвейера.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.