Interface for creating and updating GPU memory resources.

interface GPUMemoryEditor {
    addMesh(
        batchIndex: number,
        sceneMesh: SceneMesh,
    ): SDKResult<GPUMemoryMeshHandle>;
    cameraViewMatrixUpdated(camera: Camera): void;
    createBatch(): SDKResult<number>;
    getDrawArraysParamsForMesh(
        batchIndex: number,
        meshIndex: number,
    ): { count: number; first: number };
    getMeshAtIndex(batchIndex: number, meshIndex: number): SceneMesh;
    getTile(worldPos: Vec3): GPUTile;
    hasMemoryForMesh(batchIndex: number, sceneMesh: SceneMesh): boolean;
    moveTile(tile: GPUTile, worldPos: Vec3): GPUTile;
    putTile(tile: GPUTile): void;
    removeMesh(meshHandle: GPUMemoryMeshHandle): void;
    setMeshAttribs(
        meshHandle: GPUMemoryMeshHandle,
        params: { tileIndex?: number },
    ): void;
    setMeshMatrix(meshHandle: GPUMemoryMeshHandle, matrix: Mat4): void;
    setMeshRenderPass(
        meshHandle: GPUMemoryMeshHandle,
        viewIndex: number,
        renderPass: number,
    ): void;
    setMeshViewAttribs(
        meshHandle: GPUMemoryMeshHandle,
        viewIndex: number,
        params: {
            clippable?: boolean;
            color?: Vec3;
            opacity?: number;
            pickable?: boolean;
        },
    ): void;
    setMeshVisible(
        meshHandle: GPUMemoryMeshHandle,
        viewIndex: number,
        visible: boolean,
    ): void;
    uploadChanges(): void;
}

Implemented by

Methods

  • Sets attributes for a mesh within a specific view. The attributes are stored in DataTexturesLayer.meshViewAttribs.

    Parameters

    • meshHandle: GPUMemoryMeshHandle
    • viewIndex: number

      The index of the view.

    • params: { clippable?: boolean; color?: Vec3; opacity?: number; pickable?: boolean }

      The attributes to set, including flags and color.

    Returns void