mirror of https://github.com/bjornbytes/lovr.git
ModelData:getMetadata;
This commit is contained in:
parent
a6d843c642
commit
eac3299bd0
|
@ -62,6 +62,18 @@ static ModelAnimation* luax_checkanimation(lua_State* L, int index, ModelData* m
|
|||
}
|
||||
}
|
||||
|
||||
static int l_lovrModelDataGetMetadata(lua_State* L) {
|
||||
ModelData* model = luax_checktype(L, 1, ModelData);
|
||||
|
||||
if (!model->metadata || model->metadataSize == 0) {
|
||||
lua_pushnil(L);
|
||||
} else {
|
||||
lua_pushlstring(L, model->metadata, model->metadataSize);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int l_lovrModelDataGetBlobCount(lua_State* L) {
|
||||
ModelData* model = luax_checktype(L, 1, ModelData);
|
||||
lua_pushinteger(L, model->blobCount);
|
||||
|
@ -731,6 +743,7 @@ static int l_lovrModelDataGetSkinInverseBindMatrix(lua_State* L) {
|
|||
}
|
||||
|
||||
const luaL_Reg lovrModelData[] = {
|
||||
{ "getMetadata", l_lovrModelDataGetMetadata },
|
||||
{ "getBlobCount", l_lovrModelDataGetBlobCount },
|
||||
{ "getBlob", l_lovrModelDataGetBlob },
|
||||
{ "getImageCount", l_lovrModelDataGetImageCount },
|
||||
|
|
|
@ -57,6 +57,10 @@ static int l_lovrModelGetData(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int l_lovrModelGetMetadata(lua_State* L) {
|
||||
return luax_callmodeldata(L, "getMetadata", 1);
|
||||
}
|
||||
|
||||
static int l_lovrModelGetRootNode(lua_State* L) {
|
||||
return luax_callmodeldata(L, "getRootNode", 1);
|
||||
}
|
||||
|
@ -356,6 +360,7 @@ static int l_lovrModelGetTexture(lua_State* L) {
|
|||
|
||||
const luaL_Reg lovrModel[] = {
|
||||
{ "getData", l_lovrModelGetData },
|
||||
{ "getMetadata", l_lovrModelGetMetadata },
|
||||
{ "getRootNode", l_lovrModelGetRootNode },
|
||||
{ "getNodeCount", l_lovrModelGetNodeCount },
|
||||
{ "getNodeName", l_lovrModelGetNodeName },
|
||||
|
|
|
@ -156,6 +156,9 @@ typedef struct ModelData {
|
|||
uint32_t ref;
|
||||
void* data;
|
||||
|
||||
char* metadata;
|
||||
size_t metadataSize;
|
||||
|
||||
struct Blob** blobs;
|
||||
struct Image** images;
|
||||
ModelBuffer* buffers;
|
||||
|
|
|
@ -230,6 +230,11 @@ ModelData* lovrModelDataInitGltf(ModelData* model, Blob* source, ModelDataIO* io
|
|||
binOffset = 0;
|
||||
}
|
||||
|
||||
model->metadata = malloc(jsonLength);
|
||||
lovrAssert(model->metadata, "Out of memory");
|
||||
memcpy(model->metadata, json, jsonLength);
|
||||
model->metadataSize = jsonLength;
|
||||
|
||||
// Parse JSON
|
||||
jsmn_parser parser;
|
||||
jsmn_init(&parser);
|
||||
|
|
Loading…
Reference in New Issue