@itwin/core-frontend
Version:
iTwin.js frontend components
165 lines • 5.67 kB
TypeScript
/** @packageDocumentation
* @module Rendering
*/
/** APIs for querying memory consumed by the [[RenderSystem]].
* Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
* @public
*/
export declare namespace RenderMemory {
/** Describes memory consumed by a particular type of resource.
* @internal
*/
class Consumers {
totalBytes: number;
maxBytes: number;
count: number;
addConsumer(numBytes: number): void;
clear(): void;
}
/** @internal */
enum BufferType {
Surfaces = 0,
VisibleEdges = 1,
SilhouetteEdges = 2,
PolylineEdges = 3,
IndexedEdges = 4,
Polylines = 5,
PointStrings = 6,
PointClouds = 7,
Instances = 8,
Terrain = 9,
RealityMesh = 10,
COUNT = 11
}
/** Describes memory consumed by GPU-allocated buffers.
* @internal
*/
class Buffers extends Consumers {
readonly consumers: Consumers[];
constructor();
get surfaces(): Consumers;
get visibleEdges(): Consumers;
get indexedEdges(): Consumers;
get silhouetteEdges(): Consumers;
get polylineEdges(): Consumers;
get polylines(): Consumers;
get pointStrings(): Consumers;
get pointClouds(): Consumers;
get instances(): Consumers;
get terrain(): Consumers;
get reality(): Consumers;
clear(): void;
addBuffer(type: BufferType, numBytes: number): void;
}
/** @internal */
enum ConsumerType {
Textures = 0,
VertexTables = 1,
EdgeTables = 2,
FeatureTables = 3,
FeatureOverrides = 4,
ClipVolumes = 5,
PlanarClassifiers = 6,
ShadowMaps = 7,
TextureAttachments = 8,
ThematicTextures = 9,
COUNT = 10
}
/** Contains statistics about the amount and type of memory consumed by the [[RenderSystem]].
* Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
* @see [[Statistics.create]] to instantiate an instance of this class.
* @public
*/
class Statistics {
private _totalBytes;
/** @internal */
readonly consumers: Consumers[];
/** @internal */
readonly buffers: Buffers;
/** Create a new, empty statistics object. */
static create(): Statistics;
/** @internal */
constructor();
/** The total reported memory consumption, in bytes.
* @note A web browser provides no direct access to actual memory used by the host device or its graphics hardware. The reported memory usage
* is an estimate based on the number of bytes of data requested via WebGL APIs. It is always an *under-estimate* as each WebGL implementation imposes
* its own additional overhead.
*/
get totalBytes(): number;
/** @internal */
get textures(): Consumers;
/** @internal */
get vertexTables(): Consumers;
/** @internal */
get edgeTables(): Consumers;
/** @internal */
get featureTables(): Consumers;
/** @internal */
get thematicTextures(): Consumers;
/** @internal */
get featureOverrides(): Consumers;
/** @internal */
get clipVolumes(): Consumers;
/** @internal */
get planarClassifiers(): Consumers;
/** @internal */
get shadowMaps(): Consumers;
/** @internal */
get textureAttachments(): Consumers;
/** @internal */
addBuffer(type: BufferType, numBytes: number): void;
/** @internal */
addConsumer(type: ConsumerType, numBytes: number): void;
/** @internal */
clear(): void;
/** @internal */
addTexture(numBytes: number): void;
/** @internal */
addVertexTable(numBytes: number): void;
/** @internal */
addEdgeTable(numBytes: number): void;
/** @internal */
addFeatureTable(numBytes: number): void;
/** @internal */
addThematicTexture(numBytes: number): void;
/** @internal */
addFeatureOverrides(numBytes: number): void;
/** @internal */
addContours(numBytes: number): void;
/** @internal */
addClipVolume(numBytes: number): void;
/** @internal */
addPlanarClassifier(numBytes: number): void;
/** @internal */
addShadowMap(numBytes: number): void;
/** @internal */
addTextureAttachment(numBytes: number): void;
/** @internal */
addSurface(numBytes: number): void;
/** @internal */
addVisibleEdges(numBytes: number): void;
/** @internal */
addIndexedEdges(numBytes: number): void;
/** @internal */
addSilhouetteEdges(numBytes: number): void;
/** @internal */
addPolylineEdges(numBytes: number): void;
/** @internal */
addPolyline(numBytes: number): void;
/** @internal */
addPointString(numBytes: number): void;
/** @internal */
addPointCloud(numBytes: number): void;
/** @internal */
addTerrain(numBytes: number): void;
/** @internal */
addRealityMesh(numBytes: number): void;
/** @internal */
addInstances(numBytes: number): void;
}
/** @internal */
interface Consumer {
collectStatistics(stats: Statistics): void;
}
}
//# sourceMappingURL=RenderMemory.d.ts.map