Implementing Async API

This commit is contained in:
Kearwood Kip Gilbert
2019-07-28 17:14:33 -07:00
parent 9c72088eb3
commit dfce8148e3
4 changed files with 22 additions and 2 deletions

View File

@@ -320,6 +320,19 @@ void KRContext::loadResource(std::string path) {
}
}
KrResult KRContext::unloadResource(const KrUnloadResourceInfo* unloadResourceInfo)
{
if (unloadResourceInfo->resourceHandle < 0 || unloadResourceInfo->resourceHandle >= m_resourceMapSize) {
return KR_ERROR_OUT_OF_BOUNDS;
}
KRResource* resource = m_resourceMap[unloadResourceInfo->resourceHandle];
if (resource == nullptr) {
return KR_ERROR_NOT_MAPPED;
}
// TODO - Need to implement unloading logic
return KR_ERROR_NOT_IMPLEMENTED;
}
void KRContext::detectExtensions() {
m_bDetectedExtensions = true;

View File

@@ -38,6 +38,8 @@ public:
KRContext(const KrInitializeInfo* initializeInfo);
~KRContext();
KrResult unloadResource(const KrUnloadResourceInfo* unloadResourceInfo);
void loadResource(const std::string &file_name, KRDataBlock *data);
void loadResource(std::string path);

View File

@@ -36,7 +36,10 @@ KrResult KrLoadResource(const KrLoadResourceInfo* pLoadResourceInfo)
KrResult KrUnloadResource(const KrUnloadResourceInfo* pUnloadResourceInfo)
{
return KR_ERROR_NOT_IMPLEMENTED;
if (!sContext) {
return KR_ERROR_NOT_INITIALIZED;
}
return sContext->unloadResource(pUnloadResourceInfo);
}
KrResult KrSaveResource(const KrSaveResourceInfo* pSaveResourceInfo)

View File

@@ -39,6 +39,8 @@ typedef enum {
KR_SUCCESS = 0,
KR_ERROR_NOT_INITIALIZED = 1,
KR_ERROR_NOT_IMPLEMENTED = 2,
KR_ERROR_OUT_OF_BOUNDS = 3,
KR_ERROR_NOT_MAPPED = 4,
KR_RESULT_MAX_ENUM = 0x7FFFFFFF
} KrResult;