UNPKG

@itwin/core-frontend

Version:
43 lines 1.55 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ /** @packageDocumentation * @module WebGL */ import { dispose } from "@itwin/core-bentley"; import { System } from "./System"; import { addClipping } from "./glsl/Clipping"; function createClippingBuilder(src) { const builder = src.clone(); builder.vert.headerComment += "-Clip"; builder.frag.headerComment += "-Clip"; addClipping(builder); return builder; } /** @internal */ export class ClippingProgram { _program; compile() { return undefined === this._program || 0 /* CompileStatus.Success */ === this._program.compile(); } constructor(src) { const builder = createClippingBuilder(src); this._program = builder.buildProgram(System.instance.context); } getProgram(numPlanes) { return numPlanes > 0 ? this._program : undefined; } [Symbol.dispose]() { this._program = dispose(this._program); } /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */ dispose() { this[Symbol.dispose](); } } /** @internal */ export function createClippingProgram(builder) { return new ClippingProgram(builder); } //# sourceMappingURL=ClippingProgram.js.map