(
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[]
)
| 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 |
no test coverage detected