UNPKG

1.78 kBTypeScriptView Raw
1import { Object3D } from './../../core/Object3D';
2import { Material } from './../../materials/Material';
3import { WebGLProgram } from './WebGLProgram';
4import { Group } from './../../objects/Group';
5import { Scene } from './../../scenes/Scene';
6import { Camera } from './../../cameras/Camera';
7import { BufferGeometry } from '../../core/BufferGeometry';
8import { WebGLProperties } from './WebGLProperties';
9
10// tslint:disable-next-line:no-empty-interface
11export interface RenderTarget {} // not defined in the code, used in LightShadow and WebGRenderer classes
12
13export interface RenderItem {
14 id: number;
15 object: Object3D;
16 geometry: BufferGeometry | null;
17 material: Material;
18 program: WebGLProgram;
19 groupOrder: number;
20 renderOrder: number;
21 z: number;
22 group: Group | null;
23}
24
25export class WebGLRenderList {
26 constructor(properties: WebGLProperties);
27
28 /**
29 * @default []
30 */
31 opaque: RenderItem[];
32
33 /**
34 * @default []
35 */
36 transparent: RenderItem[];
37
38 /**
39 * @default []
40 */
41 transmissive: RenderItem[];
42
43 init(): void;
44 push(
45 object: Object3D,
46 geometry: BufferGeometry | null,
47 material: Material,
48 groupOrder: number,
49 z: number,
50 group: Group | null,
51 ): void;
52 unshift(
53 object: Object3D,
54 geometry: BufferGeometry | null,
55 material: Material,
56 groupOrder: number,
57 z: number,
58 group: Group | null,
59 ): void;
60 sort(opaqueSort: (a: any, b: any) => number, transparentSort: (a: any, b: any) => number): void;
61 finish(): void;
62}
63
64export class WebGLRenderLists {
65 constructor(properties: WebGLProperties);
66
67 dispose(): void;
68 get(scene: Scene, renderCallDepth: number): WebGLRenderList;
69}