XPlor/libs/xassets/xmaterialtechniqueset.cpp

73 lines
1.8 KiB
C++
Raw Permalink Normal View History

#include "xmaterialtechniqueset.h"
XMaterialTechniqueSet::XMaterialTechniqueSet()
: XAsset()
, mName()
, mWorldVertFormat(0)
, mRemappedTechniqueSet()
, mTechniques(26)
{
SetType(ASSET_TYPE_TECHNIQUE_SET);
2025-09-10 21:58:26 -04:00
SetName("Material Technique Set");
}
XMaterialTechniqueSet::~XMaterialTechniqueSet()
{
}
2025-09-10 21:58:26 -04:00
void XMaterialTechniqueSet::ParseData(XDataStream *aStream)
{
2025-09-07 23:16:05 -04:00
if (GetPtr() == -1)
2025-09-07 12:36:08 -04:00
{
2025-09-07 23:16:05 -04:00
if (IsDebug())
{
qDebug() << QString("[%1] Parsing data for %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(GetName());
}
mName.ParsePtr(aStream, false);
2025-09-07 23:16:05 -04:00
*aStream >> mWorldVertFormat;
if (IsDebug())
{
qDebug() << QString("[%1] mWorldVertFormat = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(mWorldVertFormat);
}
2025-09-07 23:16:05 -04:00
aStream->skipRawData(3);
2025-09-07 23:16:05 -04:00
qint32 remappedPtr;
*aStream >> remappedPtr;
if (IsDebug())
{
qDebug() << QString("[%1] remappedPtr = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(remappedPtr);
2025-09-07 23:16:05 -04:00
qDebug() << QString("Parsing techniques.");
}
for (int i = 0; i < 26; i++)
{
XMaterialTechnique newTechnique;
newTechnique.ParsePtr(aStream, false);
mTechniques.append(newTechnique);
}
2025-09-07 23:16:05 -04:00
mName.SetRemoveString(",");
mName.ParseData(aStream);
2025-09-07 23:16:05 -04:00
for (int i = 0; i < 26; i++)
{
mTechniques[i].ParseData(aStream);
}
}
}
void XMaterialTechniqueSet::Clear()
{
mName.Clear();
mWorldVertFormat = 0;
delete mRemappedTechniqueSet;
mRemappedTechniqueSet = new XMaterialTechniqueSet();
mTechniques.clear();
mTechniques = QVector<XMaterialTechnique>(26);
}