Asset manager is now in charge of the loaded assets.
This commit is contained in:
@ -268,8 +268,7 @@ bool assetManagerItemIsFinished(assetmanageritem_t *item) {
|
||||
|
||||
// Font
|
||||
assetmanageritem_t * assetManagerLoadFont(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
font_t *font, char *fileName
|
||||
assetmanager_t *manager, assetmanagerowner_t owner, char *fileName
|
||||
) {
|
||||
assetmanageritem_t *item;
|
||||
item = assetManagerItemGet(manager, fileName);
|
||||
@ -277,7 +276,6 @@ assetmanageritem_t * assetManagerLoadFont(
|
||||
item = assetManagerItemAdd(manager, fileName);
|
||||
item->type = ASSET_MANAGER_TYPE_FONT;
|
||||
item->data.font.fileName = fileName;
|
||||
item->data.font.font = font;
|
||||
}
|
||||
assetManagerItemGetOrAddHolder(item, owner);
|
||||
|
||||
@ -290,20 +288,19 @@ bool _assetManagerLoaderFontAsync(assetmanageritem_t *item) {
|
||||
}
|
||||
|
||||
bool _assetManagerLoaderFontSync(assetmanageritem_t *item) {
|
||||
fontInit(item->data.font.font, item->data.font.data);
|
||||
fontInit(&item->data.font.font, item->data.font.data);
|
||||
free(item->data.font.data);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool _assetManagerLoaderFontDispose(assetmanageritem_t *item) {
|
||||
fontDispose(item->data.font.font);
|
||||
fontDispose(&item->data.font.font);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Texture
|
||||
assetmanageritem_t * assetManagerLoadTexture(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
texture_t *texture, char *fileName
|
||||
assetmanager_t *manager, assetmanagerowner_t owner, char *fileName
|
||||
) {
|
||||
assetmanageritem_t *item;
|
||||
item = assetManagerItemGet(manager, fileName);
|
||||
@ -311,7 +308,6 @@ assetmanageritem_t * assetManagerLoadTexture(
|
||||
item = assetManagerItemAdd(manager, fileName);
|
||||
item->type = ASSET_MANAGER_TYPE_TEXTURE;
|
||||
item->data.texture.fileName = fileName;
|
||||
item->data.texture.texture = texture;
|
||||
}
|
||||
assetManagerItemGetOrAddHolder(item, owner);
|
||||
|
||||
@ -348,7 +344,7 @@ bool _assetManagerLoaderTextureAsync(assetmanageritem_t *item) {
|
||||
bool _assetManagerLoaderTextureSync(assetmanageritem_t *item) {
|
||||
// Turn into a texture.
|
||||
textureInit(
|
||||
item->data.texture.texture,
|
||||
&item->data.texture.texture,
|
||||
item->data.texture.width,
|
||||
item->data.texture.height,
|
||||
item->data.texture.data
|
||||
@ -360,16 +356,16 @@ bool _assetManagerLoaderTextureSync(assetmanageritem_t *item) {
|
||||
}
|
||||
|
||||
bool _assetManagerLoaderTextureDispose(assetmanageritem_t *item) {
|
||||
textureDispose(item->data.texture.texture);
|
||||
textureDispose(&item->data.texture.texture);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Scaled Texture
|
||||
assetmanageritem_t * assetManagerLoadScaledTexture(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
scaledtexture_t *st, char *path, char *file
|
||||
assetmanager_t *manager, assetmanagerowner_t owner, char *path, char *file
|
||||
) {
|
||||
assetmanageritem_t *item;
|
||||
scaledtexture_t *st;
|
||||
char buffer[ASSET_MANAGER_ITEM_NAME_MAX];
|
||||
sprintf(buffer, "%s/%s", path, file);
|
||||
item = assetManagerItemGet(manager, buffer);
|
||||
@ -377,8 +373,7 @@ assetmanageritem_t * assetManagerLoadScaledTexture(
|
||||
item = assetManagerItemAdd(manager, buffer);
|
||||
|
||||
item->type = ASSET_MANAGER_TYPE_SCALED_TEXTURE;
|
||||
item->data.scaledTexture.scaledTexture = st;
|
||||
|
||||
st = &item->data.scaledTexture.scaledTexture;
|
||||
st->scaleCount = 0;
|
||||
st->baseWidth = 0;
|
||||
st->baseHeight = 0;
|
||||
@ -397,7 +392,7 @@ bool _assetManagerLoaderScaledTextureAsync(assetmanageritem_t *item) {
|
||||
xml_t *child;
|
||||
int16_t i, j;
|
||||
scaledtexture_t *st;
|
||||
st = item->data.scaledTexture.scaledTexture;
|
||||
st = &item->data.scaledTexture.scaledTexture;
|
||||
|
||||
// Begin loading texture XML
|
||||
sprintf(buffer, "%s/%s.xml", st->path, st->file);
|
||||
@ -434,7 +429,7 @@ bool _assetManagerLoaderScaledTextureAsync(assetmanageritem_t *item) {
|
||||
// Texture Scale
|
||||
assetmanageritem_t * assetManagerLoadTextureScale(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
scaledtexture_t *st, texture_t *text, uint8_t scale
|
||||
scaledtexture_t *st, uint8_t scale
|
||||
) {
|
||||
assetmanageritem_t *item;
|
||||
char buffer[ASSET_MANAGER_ITEM_NAME_MAX];
|
||||
@ -444,7 +439,6 @@ assetmanageritem_t * assetManagerLoadTextureScale(
|
||||
item = assetManagerItemAdd(manager, buffer);
|
||||
item->type = ASSET_MANAGER_TYPE_SCALE_TEXTURE;
|
||||
item->data.scaleTexture.scale = scale;
|
||||
item->data.scaleTexture.texture = text;
|
||||
item->data.scaleTexture.scaledTexture = st;
|
||||
}
|
||||
assetManagerItemGetOrAddHolder(item, owner);
|
||||
@ -485,7 +479,7 @@ bool _assetManagerLoaderTextureScaleSync(assetmanageritem_t *item) {
|
||||
sts = st->scales + item->data.scaleTexture.scale;
|
||||
|
||||
textureInit(
|
||||
item->data.scaleTexture.texture,
|
||||
&item->data.scaleTexture.texture,
|
||||
sts->width, sts->height,
|
||||
item->data.scaleTexture.data
|
||||
);
|
||||
@ -495,14 +489,14 @@ bool _assetManagerLoaderTextureScaleSync(assetmanageritem_t *item) {
|
||||
}
|
||||
|
||||
bool _assetManagerLoaderTextureScaleDispose(assetmanageritem_t *item) {
|
||||
textureDispose(item->data.scaleTexture.texture);
|
||||
textureDispose(&item->data.scaleTexture.texture);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Shader
|
||||
assetmanageritem_t * assetManagerLoadShader(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
shader_t *shader, char *fileVert, char *fileFrag
|
||||
char *fileVert, char *fileFrag
|
||||
) {
|
||||
assetmanageritem_t *item;
|
||||
char buffer[ASSET_MANAGER_ITEM_NAME_MAX];
|
||||
@ -511,7 +505,6 @@ assetmanageritem_t * assetManagerLoadShader(
|
||||
if(item == NULL) {
|
||||
item = assetManagerItemAdd(manager, buffer);
|
||||
item->type = ASSET_MANAGER_TYPE_SHADER;
|
||||
item->data.shader.shader = shader;
|
||||
item->data.shader.fileVert = fileVert;
|
||||
item->data.shader.fileFrag = fileFrag;
|
||||
}
|
||||
@ -534,7 +527,7 @@ bool _assetManagerLoaderShaderAsync(assetmanageritem_t *item) {
|
||||
|
||||
bool _assetManagerLoaderShaderSync(assetmanageritem_t *item) {
|
||||
shaderInit(
|
||||
item->data.shader.shader,
|
||||
&item->data.shader.shader,
|
||||
item->data.shader.dataVert,
|
||||
item->data.shader.dataFrag
|
||||
);
|
||||
@ -544,6 +537,6 @@ bool _assetManagerLoaderShaderSync(assetmanageritem_t *item) {
|
||||
}
|
||||
|
||||
bool _assetManagerLoaderShaderDispose(assetmanageritem_t *item) {
|
||||
shaderDispose(item->data.shader.shader);
|
||||
shaderDispose(&item->data.shader.shader);
|
||||
return true;
|
||||
}
|
@ -38,31 +38,31 @@
|
||||
|
||||
// Loader Types
|
||||
typedef struct {
|
||||
font_t *font;
|
||||
font_t font;
|
||||
char *fileName;
|
||||
char *data;
|
||||
} assetmanagerfont_t;
|
||||
|
||||
typedef struct {
|
||||
texture_t *texture;
|
||||
texture_t texture;
|
||||
char *fileName;
|
||||
int32_t width, height;
|
||||
pixel_t *data;
|
||||
} assetmanagertexture_t;
|
||||
|
||||
typedef struct {
|
||||
scaledtexture_t *scaledTexture;
|
||||
scaledtexture_t scaledTexture;
|
||||
} assetmanagerscaledtexture_t;
|
||||
|
||||
typedef struct {
|
||||
scaledtexture_t *scaledTexture;
|
||||
texture_t *texture;
|
||||
texture_t texture;
|
||||
uint8_t scale;
|
||||
pixel_t *data;
|
||||
} assetmanagerscaletexture_t;
|
||||
|
||||
typedef struct {
|
||||
shader_t *shader;
|
||||
shader_t shader;
|
||||
char *fileVert;
|
||||
char *fileFrag;
|
||||
char *dataVert;
|
||||
@ -205,8 +205,7 @@ bool assetManagerItemIsFinished(assetmanageritem_t *item);
|
||||
* @return A pointer to the asset manager item for tracking.
|
||||
*/
|
||||
assetmanageritem_t * assetManagerLoadFont(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
font_t *font, char *fileName
|
||||
assetmanager_t *manager, assetmanagerowner_t owner, char *fileName
|
||||
);
|
||||
|
||||
bool _assetManagerLoaderFontAsync(assetmanageritem_t *item);
|
||||
@ -223,8 +222,7 @@ bool _assetManagerLoaderFontDispose(assetmanageritem_t *item);
|
||||
* @return A pointer to the asset manager item for tracking.
|
||||
*/
|
||||
assetmanageritem_t * assetManagerLoadTexture(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
texture_t *texture, char *fileName
|
||||
assetmanager_t *manager, assetmanagerowner_t owner, char *fileName
|
||||
);
|
||||
|
||||
bool _assetManagerLoaderTextureAsync(assetmanageritem_t *item);
|
||||
@ -237,14 +235,12 @@ bool _assetManagerLoaderTextureDispose(assetmanageritem_t *item);
|
||||
*
|
||||
* @param manager Manager to queue on to.
|
||||
* @param owner Owner ID requesting to load this resource.
|
||||
* @param mt Scaled Texture to load in to.
|
||||
* @param path Path of the texture files
|
||||
* @param file File name of the texture sets.
|
||||
* @return A pointer to the asset manager item for tracking.
|
||||
*/
|
||||
assetmanageritem_t * assetManagerLoadScaledTexture(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
scaledtexture_t *st, char *path, char *file
|
||||
assetmanager_t *manager, assetmanagerowner_t owner, char *path, char *file
|
||||
);
|
||||
|
||||
bool _assetManagerLoaderScaledTextureAsync(assetmanageritem_t *item);
|
||||
@ -261,7 +257,7 @@ bool _assetManagerLoaderScaledTextureAsync(assetmanageritem_t *item);
|
||||
*/
|
||||
assetmanageritem_t * assetManagerLoadTextureScale(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
scaledtexture_t *st, texture_t *text, uint8_t scale
|
||||
scaledtexture_t *st, uint8_t scale
|
||||
);
|
||||
|
||||
bool _assetManagerLoaderTextureScaleAsync(assetmanageritem_t *item);
|
||||
@ -280,7 +276,7 @@ bool _assetManagerLoaderTextureScaleDispose(assetmanageritem_t *item);
|
||||
*/
|
||||
assetmanageritem_t * assetManagerLoadShader(
|
||||
assetmanager_t *manager, assetmanagerowner_t owner,
|
||||
shader_t *shader, char *fileVert, char *fileFrag
|
||||
char *fileVert, char *fileFrag
|
||||
);
|
||||
|
||||
bool _assetManagerLoaderShaderAsync(assetmanageritem_t *item);
|
||||
|
Reference in New Issue
Block a user