diff options
| author | 2020-09-11 00:47:19 -0400 | |
|---|---|---|
| committer | 2020-09-11 00:47:19 -0400 | |
| commit | e33d5e9ed98e7450c7c114c3314e03d663ce019b (patch) | |
| tree | f6ddd2006957378166df1559629d1e8222a8c15e /src | |
| parent | 51b1cd03c3a4e45afd97eb106b84588dfc97d78c (diff) | |
| download | mauri-e33d5e9ed98e7450c7c114c3314e03d663ce019b.tar.gz mauri-e33d5e9ed98e7450c7c114c3314e03d663ce019b.tar.bz2 mauri-e33d5e9ed98e7450c7c114c3314e03d663ce019b.zip | |
handle passthrough objects
Diffstat (limited to 'src')
| -rw-r--r-- | src/assets.c | 6 | ||||
| -rw-r--r-- | src/objects/material.c | 9 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/assets.c b/src/assets.c index 499b304..cd68bb8 100644 --- a/src/assets.c +++ b/src/assets.c @@ -3,6 +3,7 @@ #include "log.h" #include "assets.h" +#include "moro_vec.h" #include "util.h" mri_asset_manager asset_manager; @@ -151,12 +152,11 @@ mri_asset *mri_asset_manager_get(mstr *part, mri_file_type_hint hint) { if (!asset_loaded) { mstr_prepend(path, mstr_c("assets/")); - asset_from_path(path, mvec_next(asset_manager.files)); + asset = mvec_next(asset_manager.files); + asset_from_path(path, asset); if (asset->type == ASSET_VOID) { mvec_pop(asset_manager.files); asset = &asset_void; - } else { - asset = mvec_last(asset_manager.files); } } diff --git a/src/objects/material.c b/src/objects/material.c index 2076274..d49b0ea 100644 --- a/src/objects/material.c +++ b/src/objects/material.c @@ -49,9 +49,14 @@ void mri_material_load(mri_engine *engine, mri_material *material, mri_material_ pass = mri_material_next_pass(material); pass->object = engine->current_object; - pass->gl_object = &engine->current_object->gl_uv_object; - glm_mat4_copy(engine->current_object->ortho, pass->model); + if (engine->current_object->passthrough) { + pass->gl_object = &engine->current_object->gl_object; + glm_mat4_copy(engine->current_object->model, pass->model); + } else { + pass->gl_object = &engine->current_object->gl_uv_object; + glm_mat4_copy(engine->current_object->ortho, pass->model); + } mri_pass_load(engine, pass0, MATERIAL_ONLY_PASS, pass); break; |