At the moment and coming from natus, there is only one default graphics rendering backend. When targeting different graphics apis, this approach does not allow to change the api if new features are available.
What can be done is to categorize the rendering backends into generations. Since motor starts with OpenGL 4, Es3 and DirectX11 and some backwards implementation should be possible the suggestion is to start with a gen 4 rendering system.
The following could be possible:
gen 2 (GL2, DX9)
gen 3 (GL3, ES2, DX10)
gen 4 (GL4, ES3, DX11)
gen 5 (GL4, Vulkan, DX12)
In that regard, a frontend can be introduced which unifies rendering for a backend generation.
At the moment and coming from
natus
, there is only one default graphics rendering backend. When targeting different graphics apis, this approach does not allow to change the api if new features are available.What can be done is to categorize the rendering backends into generations. Since
motor
starts with OpenGL 4, Es3 and DirectX11 and some backwards implementation should be possible the suggestion is to start with a gen 4 rendering system.The following could be possible:
In that regard, a frontend can be introduced which unifies rendering for a backend generation.
frontend
classes