liko
    Preparing search index...

    Class TextureBuffer

    纹理缓冲区类,用于管理 GPU 纹理资源

    该类封装了纹理的创建、上传、销毁等操作,提供了纹理资源的完整生命周期管理。 支持从 ImageBitmap 或 HTMLCanvasElement 创建纹理,并可配置纹理的重复模式。

    Implements

    • ITextureBuffer
    Index

    Constructors

    • 创建纹理缓冲区实例

      Parameters

      • bitmap: HTMLCanvasElement | ImageBitmap

        源位图数据,支持 ImageBitmap 或 HTMLCanvasElement

      • repeat: boolean = false

        是否启用纹理重复模式,默认为 false

      Returns TextureBuffer

      • bitmap 的宽度和高度必须大于等于 0
      • 创建时会立即分配 GPU 纹理资源,但不会上传数据
      • 需要手动调用 upload() 方法将数据上传到 GPU

    Properties

    bitmap: HTMLCanvasElement | ImageBitmap

    源位图数据,可以是 ImageBitmap 或 HTMLCanvasElement,只读属性

    destroyed: boolean = false

    标记纹理是否已被销毁

    height: number = 0

    纹理高度(像素),只读属性

    loaded: boolean = false

    标记纹理数据是否已上传到 GPU

    repeat: boolean = false

    标记纹理是否启用重复模式

    sampler: GPUSampler

    WebGPU 采样器,根据 repeat 参数选择默认采样器或重复采样器,只读属性

    texture: GPUTexture

    WebGPU 纹理对象,只读属性

    uid: string = ...

    唯一标识符,用于追踪纹理实例

    view: GPUTextureView

    WebGPU 纹理视图,用于在着色器中访问纹理,只读属性

    width: number = 0

    纹理宽度(像素),只读属性

    Methods

    • 销毁纹理资源

      Returns void

      • 释放 GPU 纹理内存
      • 销毁后不能再使用该纹理实例
      • 重复调用是安全的,不会产生副作用
    • 标记纹理数据为脏状态

      Returns void

      • 重新生成唯一标识符
      • 将 loaded 状态重置为 false
      • 下次调用 upload() 时会重新上传数据到 GPU
      • 当源位图数据发生变化时应调用此方法
    • 将位图数据上传到 GPU

      Returns void

      • 只有在首次调用或调用 dirty() 后才会实际上传数据
      • 上传完成后会将 loaded 标记为 true
      • 重复调用是安全的,不会重复上传相同数据