LeCodesdocs

Texture2D

GPU-текстура для 2D-движка — изображение за Sprite или Tilemap. Сырые байты файла декодируются и загружаются нативно. Не взаимозаменяема с 3D Texture (изображения материалов).

Обзор

TypeScript
const tex = await Texture2D.load(asset('./hero.png'))
const hero = new Sprite({ texture: tex })
console.log(tex.width, tex.height)      // пиксельные размеры

Загрузка

TypeScript
Texture2D.load(source: string | FetchResponse | File): Promise<Texture2D>
  • URL-строка — путь asset('./file.png') или удалённый https://… URL; скачивается, затем декодируется. Отклоняется при HTTP-статусе ≥ 400 или ошибке декодирования.
  • FetchResponse — уже скачанный ответ (пропускает лишний запрос).
  • File — напр. из Canvas.toFile() или openFilePicker.
TypeScript
Texture2D.fromCanvas(canvas: Canvas): Texture2D

Оборачивает запечённую поверхность Canvas как текстуру — синхронно (уже растрирована, без декодирования). Её width/heightфизические пиксели канваса (логический размер × pixelRatio). Присвоение Canvas напрямую в sprite.texture делает это за тебя.

Свойства и жизненный цикл

TypeScript
tex.width, tex.height    // пиксели (только чтение)
tex.id                   // нативный хэндл текстуры (только чтение)
tex.destroy(): void      // освободить GPU-текстуру

Текстуры свободно разделяются — много спрайтов могут использовать один Texture2D. destroy() освобождает GPU-ресурс; спрайты, всё ещё ссылающиеся на неё — неопределённое поведение.

Note

сэмплинг (nearest против linear) не на текстуру — это глобальная настройка рендерера, выбираемая на сцену через опцию filter у Scene2D.

Смотрите также

  • Sprite — использование текстуры, кадры/атласы.
  • Tilemap — сетки атласа.
  • SpriteAnimation — нарезка листа на клипы.
  • Scene2D — глобальная настройка filter.