we
    Preparing search index...

    BOL偏移量和长度映射类 1、CPU和GPU中的buffer具有相同的offset和byteLength 2、更新偏移量和长度时,需要更新CPU和GPU中的buffer(重新写入数据)。

    Implements

    Index

    Constructors

    Properties

    _id: number = 1
    _isDestroy: boolean = false
    _manager: any
    clock: Clock
    cpuBuffer: ArrayBuffer
    device: GPUDevice
    flagWriteAll: boolean = false

    向GPU写入所有数据 0、目的,简化rebuild之后的聚合更新, 1、默认false 2、调用rebuild()后,需要写入所有数据。 A、release的阈值触发,由BPC触发 B、按需调用rebuild C、update之后,更改flag为false 3、带数据的整合初始化之后,不需要改变flag,已经采取了立即写入模式

    gpuBuffer: GPUBuffer
    inputValues: IV_BOL
    lastOffset: number = 0

    最后一次分配的偏移量 1、默认从0开始分配。 2、每次分配,偏移量增加指针大小。 3、rebuild时,偏移量重置为0,然后按照每次分配的指针大小,更新此值。

    name: string = 'BOL'
    pointerIdList: Set<number> = ...

    指针ID列表

    pointerOffsetMap: Map<number, number> = ...

    指针偏移量映射表,用于聚合更新 1、key:指针offset 2、value:pointerID; 更新: 1、分配指针时,更新映射表。 2、释放指针时,更新映射表。 3、rebuild时,重置映射表。

    pointers: Pointers

    指针管理器

    rebuildPecent: number = 0.3

    release阈值,默认0.3, 1、staticVS 没有重建触发阈值。

    scene: Scene
    size: {
        free: number;
        lastFree: number;
        released: number;
        total: number;
        used: number;
    } = ...

    BOL大小,单位:字节。 默认大小64K,也是最小值。

    state: E_BOLState = E_BOLState.open
    updateOffsetAndLenght: [number, number][] = []

    聚合更新的偏移量和长度表,update()按照offset,length进行更新。 1、每帧清空 2、根据更新偏移量和长度,计算更新的offset和length。 A、连续更新的offset的间距为:64K。即小于64K,则合并更新。 [number, number][] = [offset, length][] offset: 更新偏移量(聚合更新的偏移量) length: 更新长度(聚合长度)

    updateStrideSize: number = ...

    合并更新间距阈值,默认64K 。 1、staticVS 没有合并更新间距阈值。

    usage: number = ...

    GPUBufferUsageFlags类型

    UUID: string = ''

    Accessors

    Methods

    • 重新构建BOL 1、重新紧密排布指针数据,即内部调度 2、更新指针的offset和byteLength

      Returns void

    • 释放指针 1、从pointerIdList中移除指针ID 2、从pointerOffsetMap中移除偏移量和指针ID的映射 3、更新BOL的size使用量 4、不考虑聚合更新的Map的问题,不再这里处理(在update中调用 this.generateUpdateOffsetAndLenght(clock);)

      Parameters

      • pointerID: number

        指针ID

      Returns void

    • 更新BOL的size使用量

      Parameters

      • option: "add" | "remove"

        add或remove

      • byteSize: number

        指针大小,单位:字节

      • Optionaloffset: number

      Returns void