Front and Back Renderer
The frontend analyze the world and determine what can contribute to the view. This is the only part that need to touch the game world. It pack the information on things to draw and put them in a render queue in the backend.
The backend use the render queue to submit the draw calls to the graphics API. A seperate backend with a shared interface can make it possible to switch what API is used for displaying the game.