From 3c31fb4730efba1d4cd373824f7b8ee430ccfcf7 Mon Sep 17 00:00:00 2001 From: cutealien Date: Mon, 26 Aug 2019 14:42:44 +0000 Subject: [PATCH] Allow to override MaterialType in SOverrideMaterial. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5859 dfc29bdd-3216-0410-991c-e03cc46cb475 --- include/SOverrideMaterial.h | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/include/SOverrideMaterial.h b/include/SOverrideMaterial.h index 17389aa8..3e5019ab 100644 --- a/include/SOverrideMaterial.h +++ b/include/SOverrideMaterial.h @@ -39,15 +39,40 @@ namespace video true if the Override material is enabled in the current pass. */ bool Enabled; + struct SMaterialTypeReplacement + { + SMaterialTypeReplacement(s32 original, u32 replacement) : Original(original), Replacement(replacement) {} + SMaterialTypeReplacement(u32 replacement) : Original(-1), Replacement(replacement) {} + + //! SMaterial.MaterialType to replace. + //! -1 for all types or a specific value to only replace that one (which is either one of E_MATERIAL_TYPE or a shader material id) + s32 Original; + + //! MaterialType to used to override Original (either one of E_MATERIAL_TYPE or a shader material id) + u32 Replacement; + }; + + //! To overwrite SMaterial::MaterialType + core::array MaterialTypes; + //! Default constructor SOverrideMaterial() : EnableFlags(0), EnablePasses(0), Enabled(false) { - for ( u32 i=0; i