UNPKG

@deck.gl/extensions

Version:

Plug-and-play functionalities for deck.gl layers

42 lines (35 loc) 1.21 kB
// deck.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import {Framebuffer, Parameters} from '@luma.gl/core'; import {Layer, _LayersPass as LayersPass, LayersPassRenderOptions, Viewport} from '@deck.gl/core'; type CollisionFilterPassRenderOptions = LayersPassRenderOptions & {}; export default class CollisionFilterPass extends LayersPass { renderCollisionMap(target: Framebuffer, options: CollisionFilterPassRenderOptions) { const padding = 1; const clearColor = [0, 0, 0, 0]; const scissorRect = [padding, padding, target.width - 2 * padding, target.height - 2 * padding]; this.render({...options, clearColor, scissorRect, target, pass: 'collision'}); } protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): Parameters { return { ...layer.props.parameters, blend: false, depthWriteEnabled: true, depthCompare: 'less-equal' }; } getShaderModuleProps() { // Draw picking colors into collision FBO return { collision: { drawToCollisionMap: true }, picking: { isActive: 1, isAttribute: false }, lighting: {enabled: false} }; } }