UNPKG

@itwin/core-frontend

Version:
49 lines 2.38 kB
/** @packageDocumentation * @module Rendering */ import { RenderMemory } from "./RenderMemory"; import { Range3d } from "@itwin/core-geometry"; /** Abstract representation of an object which can be rendered by a [[RenderSystem]]. * Two broad classes of graphics exist: * - "Scene" graphics generated on the back-end to represent the contents of the models displayed in a [[Viewport]]; and * - [[Decorations]] created on the front-end to be rendered along with the scene. * The latter are produced using a [[GraphicBuilder]]. * @public * @extensions */ export declare abstract class RenderGraphic implements Disposable { [Symbol.dispose](): void; /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Will be made protected in a future release. Use [Symbol.dispose] instead. */ abstract dispose(): void; /** @internal */ abstract collectStatistics(stats: RenderMemory.Statistics): void; /** Extend `range` to include the bounding box of this graphic, including any child graphics. * @internal */ abstract unionRange(range: Range3d): void; } /** A graphic that owns another graphic. By default, every time a [[Viewport]]'s decorations or dynamics graphics change, the previous graphics are disposed of. * Use a GraphicOwner to prevent disposal of a graphic that you want to reuse. The graphic owner can be added to decorations and list of dynamics just like any other graphic, but the graphic it owns * will never be automatically disposed of. Instead, you assume responsibility for disposing of the owned graphic by calling [[disposeGraphic]] when the owned graphic is no longer in use. Failure * to do so will result in leaks of graphics memory or other webgl resources. * @public * @extensions */ export declare abstract class RenderGraphicOwner extends RenderGraphic { /** The owned graphic. */ abstract get graphic(): RenderGraphic; /** Does nothing. To dispose of the owned graphic, use [[disposeGraphic]]. */ dispose(): void; /** Disposes of the owned graphic. */ disposeGraphic(): void; /** @internal */ collectStatistics(stats: RenderMemory.Statistics): void; /** @internal */ unionRange(range: Range3d): void; } /** An array of [[RenderGraphic]]s. * @public * @extensions */ export type GraphicList = RenderGraphic[]; //# sourceMappingURL=RenderGraphic.d.ts.map