2025-09-03 13:16:04 -04:00
|
|
|
#include "xmaterialtechnique.h"
|
|
|
|
|
|
|
|
|
|
XMaterialTechnique::XMaterialTechnique()
|
|
|
|
|
: XAsset()
|
2025-09-05 18:35:17 -04:00
|
|
|
, mName()
|
|
|
|
|
, mFlags(0)
|
|
|
|
|
, mPassCount(0)
|
|
|
|
|
, mPassArray()
|
2025-09-03 13:16:04 -04:00
|
|
|
{
|
2025-09-07 12:36:08 -04:00
|
|
|
SetName("Material Technique");
|
2025-09-03 13:16:04 -04:00
|
|
|
}
|
|
|
|
|
|
2025-09-05 18:35:17 -04:00
|
|
|
XMaterialTechnique::~XMaterialTechnique()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-03 13:16:04 -04:00
|
|
|
void XMaterialTechnique::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-05 18:35:17 -04:00
|
|
|
|
|
|
|
|
*aStream
|
|
|
|
|
>> mFlags
|
|
|
|
|
>> mPassCount;
|
|
|
|
|
|
2025-09-07 12:36:08 -04:00
|
|
|
if (IsDebug())
|
|
|
|
|
{
|
|
|
|
|
qDebug() << QString("[%1] mFlags = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(mFlags);
|
|
|
|
|
qDebug() << QString("[%1] mPassCount = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(mPassCount);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mPassArray = QVector<XMaterialPass>(mPassCount);
|
2025-09-05 18:35:17 -04:00
|
|
|
|
|
|
|
|
for (int i = 0; i < mPassCount; i++)
|
|
|
|
|
{
|
|
|
|
|
mPassArray[i].ParseData(aStream);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mName.ParseData(aStream);
|
2025-09-03 13:16:04 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XMaterialTechnique::Clear()
|
|
|
|
|
{
|
2025-09-05 18:35:17 -04:00
|
|
|
mName.Clear();
|
|
|
|
|
mFlags = 0;
|
|
|
|
|
mPassCount = 0;
|
|
|
|
|
mPassArray.clear();
|
2025-09-03 13:16:04 -04:00
|
|
|
}
|