Marble currently performs all rendering in software. While this works reasonably well on desktop systems, OpenGL allowed for both high quality results and faster rendering even on mobile devices. Besides the software rendering mode, Marble should also offer an OpenGL mode and users should be able to switch dynamically between those. In order to keep maintainance effort at a minimum, both modes should share as much code as possible. In other words, internal APIs should be refactored to fit the needs of both modes. Reproducible: Always