@openhps/core
Version:
Open Hybrid Positioning System - Core component
67 lines (58 loc) • 1.65 kB
TypeScript
import { Camera } from "../../cameras/Camera.js";
import { BufferGeometry } from "../../core/BufferGeometry.js";
import { Object3D } from "../../core/Object3D.js";
import { Material } from "../../materials/Material.js";
import { Group } from "../../objects/Group.js";
import { Scene } from "../../scenes/Scene.js";
import { WebGLProgram } from "./WebGLProgram.js";
import { WebGLProperties } from "./WebGLProperties.js";
export interface RenderItem {
id: number;
object: Object3D;
geometry: BufferGeometry | null;
material: Material;
program: WebGLProgram;
groupOrder: number;
renderOrder: number;
z: number;
group: Group | null;
}
export class WebGLRenderList {
constructor(properties: WebGLProperties);
/**
* @default []
*/
opaque: RenderItem[];
/**
* @default []
*/
transparent: RenderItem[];
/**
* @default []
*/
transmissive: RenderItem[];
init(): void;
push(
object: Object3D,
geometry: BufferGeometry | null,
material: Material,
groupOrder: number,
z: number,
group: Group | null,
): void;
unshift(
object: Object3D,
geometry: BufferGeometry | null,
material: Material,
groupOrder: number,
z: number,
group: Group | null,
): void;
sort(opaqueSort: (a: any, b: any) => number, transparentSort: (a: any, b: any) => number): void;
finish(): void;
}
export class WebGLRenderLists {
constructor(properties: WebGLProperties);
dispose(): void;
get(scene: Scene, renderCallDepth: number): WebGLRenderList;
}