Документация
Docs/ru/reference/image-format/runtime.md
Контракт runtime спрайтов
Сгенерированный справочник. Не редактируйте его напрямую. Обновите
BuildTools/ImageFormatInterface.json, затем выполнитеpython BuildTools/docs_image_format.py --write.
| Индекс | Форматы | FOFRM | Параметры | Запекание | Runtime | Проверка | Канонический JSON | Руководство |
| Стабильный ID | Правило | Требование | Причина | Источник |
|---|---|---|---|---|
image-format.runtime.factory-coverage |
Граница расширений штатной factory | DefaultSpriteFactory регистрирует все встроенные расширения ImageBaker, кроме spr; прямым путям .spr нужна custom factory или, обычно, авторская .fofrm-обёртка. | Поддержка запекания и поддержка штатного runtime path являются разными registry расширений. | Source/Client/DefaultSprites.h |
image-format.runtime.decode |
Декодирование baked container | Штатный runtime читает только запечённый контейнер через ReadSpriteResource, проверяет magic, version, числа кадров/направлений, полные frame/mesh records, footer и trailing data, затем создаёт AtlasSprite либо SpriteSheet. | Source decoders принадлежат только baker и не поставляются как runtime image parsers. | Source/Common/SpriteResource.cpp, Source/Client/DefaultSprites.cpp |
image-format.runtime.static-frame |
Поведение одного кадра | Ресурс с одним кадром и направлением становится AtlasSprite и применяет разрешённый draw offset concrete frame; сериализованные NextX/NextY остаются metadata, потому что поверхности frame displacement SpriteSheet нет. | NextX/NextY имеют значение только когда consumer sheet выбирает и интерпретирует animation frames. | Source/Client/DefaultSprites.cpp |
image-format.runtime.sprite-sheet |
Состояние направления и playback | SpriteSheet принимает одно или полное число направлений карты, поддерживает выбор направления, random prewarm, normalized time, loop/reverse playback и считает один кадр либо нулевые полные ticks непроигрываемыми. | Animation state является клиентским presentation state, а каждое направление владеет параллельным frame sheet. | Source/Client/DefaultSprites.cpp |
image-format.runtime.frame-offset |
Смещения спрайта каждого кадра | Concrete и shared frames SpriteSheet сохраняют импортированные NextX/NextY в _sprOffset; обычный draw использует offset выбранного AtlasSprite, а locomotion projection потребляет отдельный массив frame offsets. | Визуальное root-motion displacement должно оставаться отдельным от sequence placement и authoritative world movement. | Source/Client/DefaultSprites.cpp, Source/Client/DefaultSprites.h |
image-format.runtime.atlas |
Загрузка в atlas, polygon draw, border и hit mask | RGBA frames положительного размера размещаются в запрошенном AtlasType, загружаются с продублированными однопиксельными краями filtering и преобразуются в hit mask SpriteHitValue. Обычные полноразмерные draws отправляют запечённый indexed silhouette, когда он есть; crops, tiled/padded draws, fonts, blits, model sprites и particles сохраняют прямоугольные пути. | Mesh geometry меняет fill/submission cost, не меняя pixels атласа, picking, logical scaling или специализированные прямоугольные render-контракты. | Source/Client/DefaultSprites.cpp, Source/Client/SpriteManager.cpp |
image-format.runtime.cache |
Идентичность cache копируемых спрайтов | Copyable sprites кэшируются по hashed path вместе с AtlasType, а каждая загрузка возвращает MakeCopy, поэтому один source path может иметь отдельные atlas-backed cache entries. | Независимое animation state не должно изменять cached prototype, а разные классы atlas нельзя безусловно размещать совместно. | Source/Client/SpriteManager.cpp |
image-format.runtime.missing-cache |
Мемоизация отсутствующего пути | Отсутствующие paths/extensions, неизвестные factories и ошибки factory load мемоизируются по пути в _nonFoundSprites; CleanupSpriteCache не очищает этот набор. | Добавление ранее отсутствовавшего ресурса во время live session обычно требует пересоздать manager или перезапустить client перед повтором того же пути. | Source/Client/SpriteManager.cpp, Source/Client/SpriteManager.h |