Implementing async api

This commit is contained in:
Kearwood Kip Gilbert
2019-07-28 16:46:46 -07:00
parent 00b1d97285
commit 9c72088eb3
6 changed files with 131 additions and 13 deletions

View File

@@ -38,29 +38,79 @@
typedef enum {
KR_SUCCESS = 0,
KR_ERROR_NOT_INITIALIZED = 1,
KR_ERROR_WRONG_THREAD = 2,
KR_ERROR_NOT_IMPLEMENTED = 2,
KR_RESULT_MAX_ENUM = 0x7FFFFFFF
} KrResult;
typedef enum {
KR_STRUCTURE_TYPE_INITIALIZE = 0,
KR_STRUCTURE_TYPE_SHUTDOWN = 1,
KR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
KR_STRUCTURE_TYPE_INITIALIZE = 0,
KR_STRUCTURE_TYPE_SHUTDOWN = 1,
KR_STRUCTURE_TYPE_LOAD_RESOURCE = 0x00010000,
KR_STRUCTURE_TYPE_UNLOAD_RESOURCE = 0x00010001,
KR_STRUCTURE_TYPE_SAVE_RESOURCE = 0x00010002,
KR_STRUCTURE_TYPE_MAP_RESOURCE = 0x00010003,
KR_STRUCTURE_TYPE_UNMAP_RESOURCE = 0x00010004,
KR_STRUCTURE_TYPE_CREATE_BUNDLE = 0x00010005,
KR_STRUCTURE_TYPE_MOVE_TO_BUNDLE = 0x00010006,
KR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
} KrStructureType;
typedef int KrResourceMapIndex;
typedef struct {
KrStructureType sType;
void* pNext;
size_t resourceMapSize;
} KrInitializeInfo;
typedef struct {
KrStructureType sType;
void* pNext;
const char* pResourcePath;
KrResourceMapIndex resourceHandle;
} KrLoadResourceInfo;
typedef struct {
KrStructureType sType;
KrResourceMapIndex resourceHandle;
} KrUnloadResourceInfo;
typedef struct {
KrStructureType sType;
const char* presourceName;
KrResourceMapIndex resourceHandle;
} KrMapResourceInfo;
typedef struct {
KrStructureType sType;
KrResourceMapIndex resourceHandle;
} KrUnmapResourceInfo;
typedef struct {
KrStructureType sType;
const char* pResourcePath;
KrResourceMapIndex resourceHandle;
} KrSaveResourceInfo;
typedef struct {
KrStructureType sType;
const char* pBundleName;
KrResourceMapIndex resourceHandle;
} KrCreateBundleInfo;
typedef struct {
KrStructureType sType;
KrResourceMapIndex resourceHandle;
KrResourceMapIndex bundleHandle;
} KrMoveToBundleInfo;
KrResult KrInitialize(const KrInitializeInfo* pInitializeInfo);
KrResult KrShutdown();
KrResult KrLoadResource(const KrLoadResourceInfo* pLoadResourceInfo);
KrResult KrUnloadResource(const KrUnloadResourceInfo* pUnloadResourceInfo);
KrResult KrSaveResource(const KrSaveResourceInfo* pSaveResourceInfo);
KrResult KrMapResource(const KrMapResourceInfo* pMapResourceInfo);
KrResult KrUnmapResource(const KrUnmapResourceInfo* pUnmapResourceInfo);
KrResult KrCreateBundle(const KrCreateBundleInfo* pCreateBundleInfo);
KrResult KrMoveToBundle(const KrMoveToBundleInfo* pMoveToBundleInfo);
#endif // KRAKEN_H