Start to split 'server platform' into rendering and display components. More specifically, provide mg::DisplayPlatform and mg::RenderingPlatform, as well as creation entry points for creating these from the modules.
Our current system has 'host' platform and a 'guest' platform (both of which are confusingly mg::Platforms). The guest platform is used when the server wants to implement its own mg::Display (nested or offscreen). The host platform provides the capability to make displays. Its a bit confusing, and hasn't scaled well.
The outputs we currently have, or intend to have are: {kms, x11, hwc, nested, offscreen} [1] [2]
The rendering system we currently have, or intend to have are: { cpu, gbm/mesa, eglstreams/nvidia, ANWB/android } [1] [3]
.
Approved by Chris Halse Rogers, mir-ci-bot, Daniel van Vugt, Cemil Azizoglu, Alan Griffiths.