Fix Model paths;

This commit is contained in:
bjorn 2016-11-05 15:56:58 -07:00
parent 74c78d7f3e
commit 5188e5d830
5 changed files with 10 additions and 7 deletions

View File

@ -56,9 +56,9 @@ static void visitNode(ModelData* modelData, ModelNode* node, mat4 transform, vec
}
}
Model* lovrModelCreate(const char* filename) {
Model* lovrModelCreate(void* data, int size) {
Model* model = malloc(sizeof(model));
model->modelData = lovrModelDataCreate(filename);
model->modelData = lovrModelDataCreate(data, size);
vec_float_t vertices;
vec_init(&vertices);

View File

@ -10,6 +10,6 @@ typedef struct {
} Model;
#endif
Model* lovrModelCreate(const char* filename);
Model* lovrModelCreate(void* data, int size);
void lovrModelDestroy(Model* model);
void lovrModelDraw(Model* model, float x, float y, float z, float scale, float angle, float ax, float ay, float az);

View File

@ -507,7 +507,10 @@ int l_lovrGraphicsNewBuffer(lua_State* L) {
int l_lovrGraphicsNewModel(lua_State* L) {
const char* path = luaL_checkstring(L, 1);
luax_pushmodel(L, lovrModelCreate(path));
int size;
void* data = lovrFilesystemRead(path, &size);
luax_pushmodel(L, lovrModelCreate(data, size));
free(data);
return 1;
}

View File

@ -24,9 +24,9 @@ static void assimpNodeTraversal(ModelNode* node, struct aiNode* assimpNode) {
}
}
ModelData* lovrModelDataCreate(const char* filename) {
ModelData* lovrModelDataCreate(void* data, int size) {
ModelData* modelData = malloc(sizeof(ModelData));
const struct aiScene* scene = aiImportFile(filename, aiProcessPreset_TargetRealtime_MaxQuality | aiProcess_OptimizeGraph);
const struct aiScene* scene = aiImportFileFromMemory(data, size, aiProcessPreset_TargetRealtime_MaxQuality | aiProcess_OptimizeGraph, NULL);
// Meshes
vec_init(&modelData->meshes);

View File

@ -41,5 +41,5 @@ typedef struct {
#endif
ModelData* lovrModelDataCreate(const char* filename);
ModelData* lovrModelDataCreate(void* data, int size);
void lovrModelDataDestroy(ModelData* modelData);