26 #ifndef _SIFTEO_ABI_ASSET_H
27 #define _SIFTEO_ABI_ASSET_H
29 #include <sifteo/abi/types.h>
36 #define _SYS_ASSETLOAD_BUF_SIZE 48 // Makes _SYSAssetLoaderCube come to 64 bytes
37 #define _SYS_MAX_ASSET_SLOTS 4 // Number of AssetSlots maximum per-program
38 #define _SYS_TILES_PER_ASSETSLOT 4096 // Number of tiles per AssetSlot
39 #define _SYS_ASSET_GROUPS_PER_SLOT 24 // Number of AssetGroups we can track per-slot
40 #define _SYS_ASSET_SLOTS_PER_BANK 4 // Number of AssetSlots maximum per-program
41 #define _SYS_ASSET_GROUP_SIZE_UNIT 16 // Basic unit of AssetGroup allocation, in tiles
42 #define _SYS_ASSET_GROUP_CRC_SIZE 16 // Number of bytes of AssetGroup CRC
45 struct _SYSAssetGroupHeader {
50 uint8_t crc[_SYS_ASSET_GROUP_CRC_SIZE];
54 struct _SYSAssetGroupCube {
58 struct _SYSAssetGroup {
63 struct _SYSAssetLoaderCube {
69 uint8_t buf[_SYS_ASSETLOAD_BUF_SIZE];
72 struct _SYSAssetLoader {
73 _SYSCubeIDVector busyCubes;
77 struct _SYSAssetConfiguration {
79 _SYSVolumeHandle volume;
86 enum _SYSAssetImageFormat {
93 struct _SYSAssetImage {