liko
    Preparing search index...

    Class Texture

    纹理类,由图像源和 UV 坐标组成,用于在渲染中表示和管理纹理资源

    纹理是渲染系统的核心组件,它封装了图像数据和相关的渲染属性。 支持从多种来源创建纹理,包括 URL、Canvas 元素和现有的缓冲区。 同时支持图集纹理,可以处理旋转、裁剪等复杂的纹理变换。

    // 从 URL 创建纹理
    const texture = await Texture.createFromUrl('path/to/image.png');

    // 从 Canvas 创建纹理
    const canvas = document.createElement('canvas');
    // ... 在 canvas 上绘制内容
    const canvasTexture = Texture.createFromCanvas(canvas);

    // 使用预定义的纹理
    const whiteTexture = Texture.WHITE; // 白色纹理
    const blankTexture = Texture.BLANK; // 空纹理

    // 从缓冲区创建带图集信息的纹理
    const atlasTexture = Texture.createFormBuffer(buffer, 'atlas.png', sheetInfo);

    // 销毁纹理释放资源
    texture?.destroy();
    Index

    Constructors

    Properties

    uid: string = ...

    纹理的唯一标识符,每个纹理实例都有独一无二的 ID

    url: string = ''

    纹理的 URL 地址,标识纹理的来源

    uvs: {
        x0: number;
        x1: number;
        x2: number;
        x3: number;
        y0: number;
        y1: number;
        y2: number;
        y3: number;
    } = ...

    UV 坐标集合,用于纹理映射到几何体表面 包含四个顶点的纹理坐标 (x0,y0), (x1,y1), (x2,y2), (x3,y3)

    Accessors

    • get buffer(): ITextureBuffer

      纹理的缓冲数据 包含实际的图像数据和渲染相关的属性

      Returns ITextureBuffer

      纹理缓冲对象

    • get destroyed(): boolean

      纹理是否已被销毁 销毁后的纹理不能再使用,访问其属性可能导致错误

      Returns boolean

      如果纹理已销毁则返回 true

    • get height(): number

      纹理的高度(像素),对于图集纹理,返回的是原始图片的高度(包含空白区域)

      Returns number

    • get repeat(): boolean

      纹理是否启用重复填充模式

      Returns boolean

      如果纹理支持重复则返回 true,否则返回 false

    • get rotated(): boolean

      纹理是否被旋转,图集打包时可能会旋转纹理以更好地利用空间

      Returns boolean

    • get sheet(): undefined | ISheet

      纹理的图集信息,包含纹理在图集中的位置、大小、变换等详细信息

      Returns undefined | ISheet

      图集信息对象,如果不是图集纹理则返回 undefined

    • get trimmed(): boolean

      纹理是否被裁剪,图集打包时可能会裁剪掉透明边缘以节省空间

      Returns boolean

    • get width(): number

      纹理的宽度(像素),对于图集纹理,返回的是原始图片的宽度(包含空白区域)

      Returns number

    Methods

    • 销毁纹理,释放相关资源

      注意事项:

      • 调用此方法后,纹理将不再可用
      • 多次调用是安全的,不会产生副作用
      • 销毁后访问纹理属性可能导致错误
      • 静态纹理(BLANK、WHITE)不应该被手动销毁

      Returns void

    • 设置纹理的缓冲数据和属性

      Parameters

      • buffer: ITextureBuffer

        纹理缓冲数据

      • Optionalurl: string

        可选的纹理 URL 地址

      • Optionalsheet: ISheet

        可选的图集信息

      Returns Texture

      当前纹理实例,支持链式调用

      注意事项:

      • 如果设置了新的缓冲区,旧的缓冲区会被自动销毁
      • 设置图集信息会重新计算 UV 坐标
      • 支持运行时动态更换纹理内容
    • 使用已有的缓冲数据创建纹理

      Parameters

      • buffer: ITextureBuffer

        纹理缓冲数据,包含图像数据和渲染属性

      • Optionalurl: string

        可选的纹理 URL 地址,用于标识纹理来源

      • Optionalsheet: ISheet

        可选的图集信息,用于图集纹理

      Returns Texture

      创建的纹理对象

      注意事项:

      • 如果提供了 sheet 参数,纹理将被视为图集纹理
      • sheet 信息会影响纹理的 UV 坐标计算
    • 从 HTMLCanvasElement 创建纹理

      Parameters

      • canvas: HTMLCanvasElement

        画布元素,必须是有效的 HTMLCanvasElement

      Returns Texture

      创建的纹理对象

      注意事项:

      • Canvas 必须已经绘制了内容
      • 纹理会捕获当前 Canvas 的状态,后续 Canvas 的修改不会影响纹理
    • 从 URL 地址异步创建纹理

      Parameters

      • url: string

        图像资源的 URL 地址,支持相对路径和绝对路径

      Returns Promise<undefined | Texture>

      Promise,成功时返回纹理对象,失败时返回 undefined

      注意事项:

      • 这是一个异步方法,需要等待图像加载完成
      • 如果图像加载失败,会返回 undefined
      • 支持的图像格式取决于浏览器支持