XPlor/libs/xassets/xmaterial.cpp

69 lines
1.4 KiB
C++
Raw Normal View History

2025-09-03 13:13:30 -04:00
#include "xmaterial.h"
XMaterial::XMaterial()
: XAsset()
, mInfo()
2025-09-07 23:16:02 -04:00
, mStateBitsEntry(26)
2025-09-03 13:13:30 -04:00
, mTextureCount(0)
, mConstantCount(0)
, mStateBitsCount(0)
, mStateFlags(0)
, mCameraRegion(0)
2025-09-05 18:35:17 -04:00
, mTechniqueSet()
, mTextureTable()
, mConstantTable()
, mStateBitsTable()
2025-09-03 13:13:30 -04:00
{
2025-09-05 18:35:17 -04:00
SetType(ASSET_TYPE_MATERIAL);
SetName("Material");
2025-09-03 13:13:30 -04:00
}
XMaterial::~XMaterial()
{
2025-09-05 18:35:17 -04:00
2025-09-03 13:13:30 -04:00
}
void XMaterial::ParseData(QDataStream *aStream)
{
2025-09-07 23:16:02 -04:00
mInfo.ParseData(aStream);
for (int i = 0; i < 26; i++)
{
*aStream >> mStateBitsEntry[i];
}
*aStream
>> mTextureCount
>> mConstantCount
>> mStateBitsCount
>> mStateFlags
>> mCameraRegion;
aStream->skipRawData(1);
mTechniqueSet.ParsePtr(aStream, false);
mTextureTable.ParsePtr(aStream, false);
mConstantTable.ParsePtr(aStream, false);
mStateBitsTable.ParsePtr(aStream, false);
mTechniqueSet.ParseData(aStream);
mTextureTable.ParseData(aStream);
mConstantTable.ParseData(aStream);
mStateBitsTable.ParseData(aStream);
2025-09-03 13:13:30 -04:00
}
void XMaterial::Clear()
{
mInfo.Clear();
mStateBitsEntry.clear();
mTextureCount = 0;
mConstantCount = 0;
mStateBitsCount = 0;
mStateFlags = 0;
mCameraRegion = 0;
2025-09-05 18:35:17 -04:00
mTechniqueSet = XMaterialTechniqueSet();
mTextureTable = XMaterialTextureDef();
mConstantTable = XMaterialConstantDef();
mStateBitsTable = XGfxStateBits();
2025-09-03 13:13:30 -04:00
}