MCPcopy
hub / github.com/visgl/deck.gl / _drawLayersInViewport

Method _drawLayersInViewport

modules/core/src/passes/layers-pass.ts:246–363  ·  view source on GitHub ↗
(
    renderPass: RenderPass,
    {
      layers,
      shaderModuleProps: globalModuleParameters,
      pass,
      target,
      viewport,
      view
    }: {
      layers: Layer[];
      shaderModuleProps: Record<string, any>;
      pass: string;
      target?: Framebuffer | null;
      viewport: Viewport;
      view?: View;
    },
    drawLayerParams: DrawLayerParameters[]
  )

Source from the content-addressed store, hash-verified

244 // intersect with the picking rect
245 /* eslint-disable max-depth, max-statements, complexity */
246 private _drawLayersInViewport(
247 renderPass: RenderPass,
248 {
249 layers,
250 shaderModuleProps: globalModuleParameters,
251 pass,
252 target,
253 viewport,
254 view
255 }: {
256 layers: Layer[];
257 shaderModuleProps: Record<string, any>;
258 pass: string;
259 target?: Framebuffer | null;
260 viewport: Viewport;
261 view?: View;
262 },
263 drawLayerParams: DrawLayerParameters[]
264 ): RenderStats {
265 const glViewport = getGLViewport(this.device, {
266 shaderModuleProps: globalModuleParameters,
267 target,
268 viewport
269 });
270
271 if (view) {
272 const {clear, clearColor, clearDepth, clearStencil} = view.props;
273 if (clear) {
274 // If clear option is set, clear all buffers by default.
275 let colorToUse: NumberArray4 | false = [0, 0, 0, 0];
276 let depthToUse: number | false = 1.0;
277 let stencilToUse: number | false = 0;
278
279 if (Array.isArray(clearColor)) {
280 colorToUse = [...clearColor.slice(0, 3), clearColor[3] || 255].map(
281 c => c / 255
282 ) as NumberArray4;
283 } else if (clearColor === false) {
284 colorToUse = false;
285 }
286
287 if (clearDepth !== undefined) {
288 depthToUse = clearDepth;
289 }
290
291 if (clearStencil !== undefined) {
292 stencilToUse = clearStencil;
293 }
294
295 const clearRenderPass = this.device.beginRenderPass({
296 framebuffer: target,
297 parameters: {
298 viewport: glViewport,
299 scissorRect: glViewport
300 },
301 clearColor: colorToUse,
302 clearDepth: depthToUse,
303 clearStencil: stencilToUse

Callers 1

_drawLayersMethod · 0.95

Calls 3

getGLViewportFunction · 0.85
endMethod · 0.45
_drawLayerMethod · 0.45

Tested by

no test coverage detected