DeviceTabsWidget
DeviceTabsWidget renders a compact backend selector for switching between reusable WebGPU and WebGL devices managed by DeviceManager.
Import
import {
DeviceManager,
DeviceTabsWidget,
type DeviceTabsWidgetDevice,
type DeviceTabsWidgetProps
} from '@deck.gl-community/widgets';
Types
type DeviceTabsWidgetDevice = 'webgl2' | 'webgpu';
type DeviceTabsWidgetProps = WidgetProps & {
devices?: DeviceTabsWidgetDevice[];
placement?: WidgetPlacement;
manager?: DeviceManagerController;
};
Default props:
id: 'device-tabs-widget'devices: ['webgl2', 'webgpu']placement: 'top-right'manager: DeviceManager
Usage
import {DeviceManager, DeviceTabsWidget} from '@deck.gl-community/widgets';
const widget = new DeviceTabsWidget({
id: 'backend-tabs',
placement: 'top-left',
devices: ['webgpu', 'webgl2'],
manager: DeviceManager
});
Remarks
- Models its behavior on luma.gl's
DeviceTabsUI while using the package-localDeviceManager. - Automatically disables tabs for backends that cannot create a device in the current browser.
- Ensures the shared manager has selected one allowed backend after availability checks complete.
- Works with any
DeviceManagerControllerinstance, so apps can isolate backend state per surface if needed. - Backend selection is separate from canvas placement; use
DeviceManager.reparentCanvas(...)to move the managed canvas.