XPlor/libs/xassets/xmaterialtechnique.cpp

82 lines
1.6 KiB
C++
Raw Normal View History

2025-09-03 13:16:04 -04:00
#include "xmaterialtechnique.h"
XMaterialTechnique::XMaterialTechnique()
: XAsset()
, 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
}
void XMaterialTechnique::ParseData(XDataStream *aStream)
2025-09-05 18:35:17 -04: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
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
mPassArray = QVector<XMaterialPass>(mPassCount);
for (int i = 0; i < mPassCount; i++)
2025-09-07 12:36:08 -04:00
{
mPassArray[i].SetCommonInfo(GetCommonInfo());
mPassArray[i].ParseData(aStream);
2025-09-07 12:36:08 -04:00
}
mTechniqueName.ParseDataSafe(aStream);
2025-09-03 13:16:04 -04:00
}
void XMaterialTechnique::Clear()
{
mTechniqueName.Clear();
2025-09-05 18:35:17 -04:00
mFlags = 0;
mPassCount = 0;
mPassArray.clear();
2025-09-03 13:16:04 -04: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;
}