UNPKG

@itwin/core-frontend

Version:
47 lines 2.14 kB
/** @packageDocumentation * @module WebGL */ import { Id64String } from "@itwin/core-bentley"; import { ModelFeature } from "@itwin/core-common"; import { IModelConnection } from "../../../IModelConnection"; import { BranchStack } from "./BranchStack"; import { Batch } from "./Graphic"; /** * Assigns a transient, unique 32-bit integer ID to each Batch in a RenderCommands. * A batch ID of 0 means "no batch". * The first batch gets batch ID of 1. * The next batch gets the previous batch's ID plus the number of features in the previous batch's feature table * (or 1, if empty feature table). * The IDs are set temporarily as members on the Batch objects and reset to 0 immediately after rendering. * The currentBatch member identifies the batch containing primitives currently being drawn. * The combination of the current batch's ID (passed as uniform to shader) and the index of a given Feature within * its batch's FeatureTable (stored in vertex table) produce a unique ID for every feature rendered during a frame. * During rendering, the feature IDs are written to the "feature ID" color attachment. * The batch IDs remain valid during a call to Target.readPixels() so that they can be used to extract * Features from the Batch's FeatureTables. * @internal */ export declare class BatchState { private readonly _stack; private _batches; private _curBatch?; constructor(stack: BranchStack); get currentBatch(): Batch | undefined; get currentBatchId(): number; get currentBatchIModel(): IModelConnection | undefined; get isEmpty(): boolean; push(batch: Batch, allowAdd: boolean): void; pop(): void; reset(): void; private static readonly _scratchElementIdPair; getElementId(featureId: number): Id64String; getFeature(featureId: number, result: ModelFeature): ModelFeature | undefined; get numFeatureIds(): number; get numBatches(): number; findBatchId(featureId: number): number; get nextBatchId(): number; private getBatchId; private indexOf; find(featureId: number): Batch | undefined; } //# sourceMappingURL=BatchState.d.ts.map