Overview of surfman
mainsurfman is a low-level, cross-platform Rust library designed for managing surfaces—blocks of image data residing in GPU memory. It serves as the graphics infrastructure for the Servo browser, enabling the porting of WebGL and WebXR code across different platforms.
Key capabilities include:
- CPU Rendering: Drawing to a window (e.g., using
winit) on the CPU. - OpenGL Rendering: Rendering to an existing window or an off-screen surface.
- Cross-thread Texture Sharing: Using a surface created on one thread as an OpenGL texture on another thread.
- Platform-specific GPU APIs: Drawing to a surface using APIs like Metal.