Added asset manager into the game engine itself.

This commit is contained in:
2021-11-09 08:14:20 -08:00
parent b86b66dae6
commit 2d05d9e60e
8 changed files with 38 additions and 36 deletions

View File

@ -101,18 +101,4 @@ int32_t assetBufferSkip(assetbuffer_t *buffer, long n) {
size_t assetBufferGetCurrentPosition(assetbuffer_t *buffer) {
return ftell((FILE *)buffer);
}
void assetScripterAppend(scripter_t *scripter, char *fileName) {
char *data;
data = assetStringLoad(fileName);
duk_push_global_object(scripter->context);
duk_push_lstring(scripter->context, data, strlen(data));
if(duk_peval(scripter->context) != 0) {
printf("Error running: %s\n", duk_safe_to_string(scripter->context, -1));
}
free(data);
}

View File

@ -10,7 +10,6 @@
#include "../display/shader.h"
#include "../display/texture.h"
#include "../display/font.h"
#include "../script/scripter.h"
#if !defined(ASSET_PREFIX)
#error Asset Prefix has not been defined.
@ -88,7 +87,4 @@ int32_t assetBufferSkip(assetbuffer_t *buffer, long n);
* @param buffer Buffer to get the position of.
* @return Position (in bytes) that the current seek is at.
*/
size_t assetBufferGetCurrentPosition(assetbuffer_t *buffer);
/** @deprecated */
void assetScripterAppend(scripter_t *scripter, char *fileName);
size_t assetBufferGetCurrentPosition(assetbuffer_t *buffer);

View File

@ -109,6 +109,22 @@ void assetManagerDisposeReleased(assetmanager_t *man) {
}
}
void assetManagerDispose(assetmanager_t *man) {
uint8_t i;
assetmanagerloader_t *disp;
assetmanageritem_t *item;
for(i = 0; i < man->itemCount; i++) {
item = man->items + i;
disp = ASSET_MANAGER_LOADERS[item->type].dispose;
if(item->holderCount > 0) continue;
if(disp != NULL) disp(item);
}
man->itemCount = 0;
man->holderCount = 0;
}
// Thread Management
void assetManagerStart(assetmanager_t *manager) {
threadStart(&manager->thread);

View File

@ -129,6 +129,7 @@ float assetManagerProgressGet(assetmanager_t *manager);
uint8_t assetManagerHolderCreate(assetmanager_t *man);
void assetManagerHolderRelease(assetmanager_t *man, uint8_t hold);
void assetManagerDisposeReleased(assetmanager_t *man);
void assetManagerDispose(assetmanager_t *man);
////////////////////////////////////////////////////////////////////////////////