2025-09-03 13:16:04 -04:00
|
|
|
#include "xmaterialtechnique.h"
|
|
|
|
|
|
|
|
|
|
XMaterialTechnique::XMaterialTechnique()
|
|
|
|
|
: XAsset()
|
2025-12-19 23:06:03 -05:00
|
|
|
, mTechniqueName()
|
2025-09-05 18:35:17 -04:00
|
|
|
, 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-12-19 23:06:03 -05:00
|
|
|
void XMaterialTechnique::ParseData(XDataStream *aStream)
|
2025-09-05 18:35:17 -04:00
|
|
|
{
|
2025-12-19 23:06:03 -05:00
|
|
|
if (IsDebug())
|
|
|
|
|
{
|
|
|
|
|
qDebug() << QString("[%1] Parsing data for %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(GetName());
|
|
|
|
|
}
|
|
|
|
|
mTechniqueName.ParsePtr(aStream, false);
|
2025-09-05 18:35:17 -04:00
|
|
|
|
2025-12-19 23:06:03 -05:00
|
|
|
mFlags = aStream->ParseUInt16(QString("%1 flags").arg(GetName()));
|
|
|
|
|
mPassCount = aStream->ParseUInt16(QString("%1 pass count").arg(GetName()));
|
2025-09-05 18:35:17 -04:00
|
|
|
|
2025-12-19 23:06:03 -05:00
|
|
|
mPassArray = QVector<XMaterialPass>(mPassCount);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < mPassCount; i++)
|
2025-09-07 12:36:08 -04:00
|
|
|
{
|
2025-12-19 23:06:03 -05:00
|
|
|
mPassArray[i].SetCommonInfo(GetCommonInfo());
|
|
|
|
|
mPassArray[i].ParseData(aStream);
|
2025-09-07 12:36:08 -04:00
|
|
|
}
|
2025-12-19 23:06:03 -05:00
|
|
|
|
|
|
|
|
mTechniqueName.ParseDataSafe(aStream);
|
2025-09-03 13:16:04 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XMaterialTechnique::Clear()
|
|
|
|
|
{
|
2025-12-19 23:06:03 -05:00
|
|
|
mTechniqueName.Clear();
|
2025-09-05 18:35:17 -04:00
|
|
|
mFlags = 0;
|
|
|
|
|
mPassCount = 0;
|
|
|
|
|
mPassArray.clear();
|
2025-09-03 13:16:04 -04:00
|
|
|
}
|
2025-12-19 23:06:03 -05:00
|
|
|
|
|
|
|
|
XString XMaterialTechnique::TechniqueName() const
|
|
|
|
|
{
|
|
|
|
|
return mTechniqueName;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XMaterialTechnique::SetTechniqueName(const XString &aName)
|
|
|
|
|
{
|
|
|
|
|
mTechniqueName = aName;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
quint16 XMaterialTechnique::Flags() const
|
|
|
|
|
{
|
|
|
|
|
return mFlags;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XMaterialTechnique::SetFlags(quint16 aFlags)
|
|
|
|
|
{
|
|
|
|
|
mFlags = aFlags;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
quint16 XMaterialTechnique::PassCount() const
|
|
|
|
|
{
|
|
|
|
|
return mPassCount;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XMaterialTechnique::SetPassCount(quint16 aPassCount)
|
|
|
|
|
{
|
|
|
|
|
mPassCount = aPassCount;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QVector<XMaterialPass> XMaterialTechnique::PassArray() const
|
|
|
|
|
{
|
|
|
|
|
return mPassArray;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void XMaterialTechnique::SetPassArray(const QVector<XMaterialPass> &aPassArray)
|
|
|
|
|
{
|
|
|
|
|
mPassArray = aPassArray;
|
|
|
|
|
}
|