The wasm module's geometry tile pool surface (conway-geom tile_pool_api.h via the embind bindings in conway-api.cpp) — Phase B of the demand-geometry track. Typed narrowly here rather than through the vendored module d.ts; asset ids and sizes cross the boundary as JS numbers (< 2^53 by construction).

Division of labour (see "Resident memory: two regimes" in the design doc): the TS side (ChunkedPool + SharedAssetPool + GeometryTilePool) is the accounting/policy layer — it holds no payload bytes — while the wasm TilePool owns the physical chunks. In this composition the TS layer calls materialize/discard exactly once per residency, so the wasm-side refcount stays at 1 for TS-managed tiles; the wasm refcounting exists for future direct-C++ holders, not for this path.

interface GeometryTilePoolBindings {
    commitGeometryTileBytes(assetID: number, sourceAddress: number, byteLength: number): boolean;
    geometryTileByteSize(assetID: number): number;
    geometryTileIndexByteLength(assetID: number): number;
    geometryTilePoolBytesInUse(): number;
    geometryTilePoolFailedCommits(): number;
    geometryTilePoolFreeChunks(): number;
    geometryTilePoolInitialized(): boolean;
    geometryTilePoolTotalBytes(): number;
    geometryTileRefCount(assetID: number): number;
    geometryTileResident(assetID: number): boolean;
    geometryTileSegmentAddress(assetID: number, segment: number): number;
    geometryTileSegmentByteLength(assetID: number, segment: number): number;
    geometryTileSegmentCount(assetID: number): number;
    geometryTileVertexByteLength(assetID: number): number;
    initGeometryTilePool(budgetBytes: number, chunkBytes: number): boolean;
    releaseGeometryTile(assetID: number): boolean;
    retainGeometryTile(assetID: number): boolean;
}

Hierarchy (view full)

Methods

  • Parameters

    • assetID: number
    • sourceAddress: number
    • byteLength: number

    Returns boolean

  • Parameters

    • assetID: number

    Returns number

  • Parameters

    • assetID: number

    Returns number

  • Returns number

  • Returns number

  • Returns number

  • Returns boolean

  • Returns number

  • Parameters

    • assetID: number

    Returns number

  • Parameters

    • assetID: number

    Returns boolean

  • Parameters

    • assetID: number
    • segment: number

    Returns number

  • Parameters

    • assetID: number
    • segment: number

    Returns number

  • Parameters

    • assetID: number

    Returns number

  • Parameters

    • assetID: number

    Returns number

  • Parameters

    • budgetBytes: number
    • chunkBytes: number

    Returns boolean

  • Parameters

    • assetID: number

    Returns boolean

  • Parameters

    • assetID: number

    Returns boolean