flipperzero-firmware/assets
Sergey Gavrilov 777a4d109d
[FL-3055] Getter for application data path (#2181)
* Threads: application id
* Unit tests: appsdata getter test
* Unit tests: moar test cases for appsdata getter
* Unit tests: remove folders after test
* Storage: dir_is_exist, migrate, + unit_tests
* Plugins: migration
* Storage: common_exists, moar unit_tests 4 "common_migrate", "common_migrate" and "common_merge" bugfixes
* Storage: use FuriString for path handling
* Storage API: send caller thread id with path
* Storage: remove StorageType field in storage file list
* Storage: simplify processing
* Storage API: send caller thread id with path everywhere
* Storage: /app alias, unit tests and path creation
* Storage, path helper: remove unused
* Examples: app data example
* App plugins: use new VFS path
* Storage: file_info_is_dir
* Services: handle alias if the service accepts a path.
* App plugins: fixes
* Make PVS happy
* Storage: fix storage_merge_recursive
* Storage: rename process_aliases to resolve_path. Rename APPS_DATA to APP_DATA.
* Apps: use predefined macro instead of raw paths. Example Apps Data: README fixes.
* Storage: rename storage_common_resolve_path to storage_common_resolve_path_and_ensure_app_directory
* Api: fix version
* Storage: rename alias message
* Storage: do not create app folders in path resolving process in certain cases.

---------

Co-authored-by: Astra <93453568+Astrrra@users.noreply.github.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-03-02 03:57:27 +10:00
..
dolphin Dolphin: drop holiday animation (#2398) 2023-02-15 20:05:08 +10:00
icons BadUSB: Keyboard Layouts (#2256) 2023-02-09 00:01:00 +09:00
protobuf@6460660237 [FL-2957] Unified Info API, App Error, Data Xchange (#1998) 2022-11-29 18:08:08 +09:00
resources [FL-3055] Getter for application data path (#2181) 2023-03-02 03:57:27 +10:00
slideshow Fixed first start animation typo (#2384) 2023-02-17 17:17:57 +09:00
unit_tests [FL-3099] SubGhz: add protocol KingGates Stylo4k (#2368) 2023-02-09 02:47:39 +09:00
.gitignore fbt fixes pt4 (#1899) 2022-10-26 07:15:02 +09:00
ReadMe.md Amap and PVS Studio reports in CI/CD (#1526) 2022-08-23 20:29:26 +09:00
SConscript SCons: do not include backup files in build (#2221) 2023-02-08 18:35:38 +09:00

Requirements

  • Python3
  • Python3 packages: Pillow & heatshrink2

Compiling

./fbt icons proto dolphin_internal dolphin_blocking dolphin_ext resources

Asset naming rules

Images and Animations

NAME_VARIANT_SIZE

  • NAME - mandatory - Asset name in CamelCase. [A-Za-z0-9], special symbols not allowed
  • VARIANT - optional - icon variant: can relate to state or rendering conditions. Examples: active, inactive, inverted.
  • SIZE - mandatory - size in px. Example square 10, 20, 24, etc. Example rectangular: 10x8, 19x5, etc.

Image names will be automatically prefixed with I_, animation names with A_. Icons and Animations will be gathered into icon.h and icon.c.

Dolphin and Games assets

Rules are same as for Images and Animations plus assets are grouped by level and level prepends NAME. Good starting point: https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/AssetNaming/

Important notes

Don't include assets that you are not using, compiler is not going to strip unused assets.

Structure

  • compiled - Output folder made for compiled assets, after building project, in build directory.
  • dolphin - Dolphin game assets sources. Goes to compiled and resources folders in build directory.
  • icons - Icons sources. Goes to compiled folder in build directory.
  • protobuf - Protobuf sources. Goes to compiled folder in build directory.
  • resources - Assets that is going to be provisioned to SD card.
  • slideshow - One-time slideshows for desktop
  • unit_tests - Some pre-defined signals for testing purposes.