7 #ifndef _SIFTEO_ABI_ASSET_H
8 #define _SIFTEO_ABI_ASSET_H
10 #include <sifteo/abi/types.h>
17 #define _SYS_ASSETLOAD_BUF_SIZE 48 // Makes _SYSAssetLoaderCube come to 64 bytes
18 #define _SYS_MAX_ASSET_SLOTS 4 // Number of AssetSlots maximum per-program
19 #define _SYS_TILES_PER_ASSETSLOT 4096 // Number of tiles per AssetSlot
20 #define _SYS_ASSET_GROUPS_PER_SLOT 24 // Number of AssetGroups we can track per-slot
21 #define _SYS_ASSET_SLOTS_PER_BANK 4 // Number of AssetSlots maximum per-program
22 #define _SYS_ASSET_GROUP_SIZE_UNIT 16 // Basic unit of AssetGroup allocation, in tiles
23 #define _SYS_ASSET_GROUP_CRC_SIZE 16 // Number of bytes of AssetGroup CRC
26 struct _SYSAssetGroupHeader {
31 uint8_t crc[_SYS_ASSET_GROUP_CRC_SIZE];
35 struct _SYSAssetGroupCube {
39 struct _SYSAssetGroup {
44 struct _SYSAssetLoaderCube {
50 uint8_t buf[_SYS_ASSETLOAD_BUF_SIZE];
53 struct _SYSAssetLoader {
54 _SYSCubeIDVector busyCubes;
58 struct _SYSAssetConfiguration {
60 _SYSVolumeHandle volume;
67 enum _SYSAssetImageFormat {
74 struct _SYSAssetImage {