diff --git a/include/SMaterial.h b/include/SMaterial.h index 56479c54..42262f6e 100644 --- a/include/SMaterial.h +++ b/include/SMaterial.h @@ -210,6 +210,15 @@ namespace video EPO_FRONT=1 }; + //! Names for polygon offset direction + const c8* const PolygonOffsetDirectionNames[] = + { + "Back", + "Front", + 0 + }; + + //! Maximum number of texture an SMaterial can have. const u32 MATERIAL_MAX_TEXTURES = _IRR_MATERIAL_MAX_TEXTURES_; diff --git a/source/Irrlicht/CNullDriver.cpp b/source/Irrlicht/CNullDriver.cpp index 434dc335..2eed989d 100644 --- a/source/Irrlicht/CNullDriver.cpp +++ b/source/Irrlicht/CNullDriver.cpp @@ -1833,6 +1833,9 @@ io::IAttributes* CNullDriver::createAttributesFromMaterial(const video::SMateria attr->addBool("UseMipMaps", material.UseMipMaps); attr->addInt("AntiAliasing", material.AntiAliasing); attr->addInt("ColorMask", material.ColorMask); + attr->addInt("ColorMaterial", material.ColorMaterial); + attr->addInt("PolygonOffsetFactor", material.PolygonOffsetFactor); + attr->addEnum("PolygonOffsetDirection", material.PolygonOffsetDirection, video::PolygonOffsetDirectionNames); prefix = "BilinearFilter"; for (i=0; igetAttributeAsInt("AntiAliasing"); if (attr->existsAttribute("ColorMask")) outMaterial.ColorMask = attr->getAttributeAsInt("ColorMask"); + if (attr->existsAttribute("ColorMaterial")) + outMaterial.ColorMaterial = attr->getAttributeAsInt("ColorMaterial"); + if (attr->existsAttribute("PolygonOffsetFactor")) + outMaterial.PolygonOffsetFactor = attr->getAttributeAsInt("PolygonOffsetFactor"); + if (attr->existsAttribute("PolygonOffsetDirection")) + outMaterial.PolygonOffsetDirection = (video::E_POLYGON_OFFSET)attr->getAttributeAsEnumeration("PolygonOffsetDirection", video::PolygonOffsetDirectionNames); prefix = "BilinearFilter"; if (attr->existsAttribute(prefix.c_str())) // legacy outMaterial.setFlag(EMF_BILINEAR_FILTER, attr->getAttributeAsBool(prefix.c_str()));