We cannot hide render backend, like BGFX, under the Celerity::Render2d extension, because other extensions may need to access render backend too. For example, UI needs to render its stuff directly without touching Render2d. In some cases we might want to have UI, Render2d and Render3d working all at once in one window. That means that all render-dependant extensions should be built upon one shared rendering service that will hide real render backend under the hood.
We cannot hide render backend, like BGFX, under the Celerity::Render2d extension, because other extensions may need to access render backend too. For example, UI needs to render its stuff directly without touching Render2d. In some cases we might want to have UI, Render2d and Render3d working all at once in one window. That means that all render-dependant extensions should be built upon one shared rendering service that will hide real render backend under the hood.