XPlor/libs/xassets/xmaterialtechniqueset.cpp

69 lines
1.6 KiB
C++
Raw Normal View History

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