GPUBridge holds the graphics-API-agnostic half of a Blacklight backend: the code that turns drawables into GPU-ready batches but issues no GPU calls itself. That includes the shared vertex format, all the vertex/index packing, texture-slot allocation, and the per-camera batch pooling. The concrete backends (Blacklight.SharpDX9, and later Blacklight.WebGL2) depend on this and supply only the thin device-specific layer through the IRenderBackend seam: upload the packed buffers, bind textures/uniforms, and draw. The point is that the expensive, fiddly, well-tested part of a renderer is written once and reused, so a new backend is "implement IRenderBackend + one PrimitiveBatchBuilder subclass," not "reimplement the renderer."