From e33d5e9ed98e7450c7c114c3314e03d663ce019b Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Fri, 11 Sep 2020 00:47:19 -0400 Subject: handle passthrough objects --- src/assets.c | 6 +++--- src/objects/material.c | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src') 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; -- cgit v1.2.3-101-g0448