SMaterial serialization patch by pc0de

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@4023 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2012-01-02 15:35:56 +00:00
parent d8a7af194d
commit bd60a5dcda
2 changed files with 18 additions and 0 deletions

View File

@ -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_;

View File

@ -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; i<MATERIAL_MAX_TEXTURES; ++i)
@ -1904,6 +1907,12 @@ void CNullDriver::fillMaterialStructureFromAttributes(video::SMaterial& outMater
outMaterial.AntiAliasing = attr->getAttributeAsInt("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()));