Add `wgpu` graphics server
Fyrox now supports custom graphics servers, which essentially is a tiny abstraction layer from graphics API. Currently there's only one graphics server, based on OpenGL 3.3/OpenGL ES 3.0. wgpu looks like a very good cross-platform replacement for OpenGL and it is definitely worth implementing a graphics server with it.
Hi! I'd like to work on implementing the wgpu graphics server. This seems like a great fit since you've already built the abstraction layer for this purpose.
Before I start, could you help me with a few things?
-
Where can I find the
GraphicsServertrait/interface? I want to study the OpenGL implementation as a reference. -
What's the minimum feature set for an initial PR? I'm thinking: basic rendering → textures/lighting → advanced features. Does an incremental approach work, or would you prefer one comprehensive PR?
-
Any known gotchas with the abstraction that might be tricky when mapping to wgpu's API?
-
Shader handling: Will I need to port shaders from GLSL to WGSL, or is there an abstraction?
Where can I find the
GraphicsServertrait/interface?
https://github.com/FyroxEngine/Fyrox/blob/6021ae8da1dbe8440e44eda2b72f088ee30e7b58/fyrox-graphics/src/server.rs#L103