UNPKG

@awayjs/renderer

Version:
46 lines (37 loc) 1.3 kB
import { INode } from '@awayjs/view'; import { RenderGroup } from './RenderGroup'; import { RendererBase } from './RendererBase'; import { _IRender_MaterialClass } from './base/_IRender_MaterialClass'; import { IAssetClass } from '@awayjs/core'; import { CacheRenderer } from './CacheRenderer'; import { DefaultRenderer } from './DefaultRenderer'; /** * The DepthRenderer class renders 32-bit depth information encoded as RGBA * * @class away.render.DepthRenderer */ export class DepthRenderer extends RendererBase { public static assetType: string = '[renderer DepthRenderer]'; /** * Creates a new DepthRenderer object. */ constructor() { super(); this._traverserGroup = RenderGroup.getInstance(CacheRenderer); this._maskGroup = RenderGroup.getInstance(DefaultRenderer); } /** * */ public enterNode(node: INode): boolean { const enter: boolean = node._collectionMark != RendererBase._collectionMark && node.isCastingShadow(); if (!enter) { node._collectionMark = RendererBase._collectionMark; return false; } return super.enterNode(node); } public static registerMaterial(renderMaterialClass: _IRender_MaterialClass, materialClass: IAssetClass): void { RenderGroup.getInstance(DepthRenderer).registerMaterial(renderMaterialClass, materialClass); } }