XPlor/libs/xassets/xmaterial.cpp
2025-09-07 23:16:02 -04:00

69 lines
1.4 KiB
C++

#include "xmaterial.h"
XMaterial::XMaterial()
: XAsset()
, mInfo()
, mStateBitsEntry(26)
, mTextureCount(0)
, mConstantCount(0)
, mStateBitsCount(0)
, mStateFlags(0)
, mCameraRegion(0)
, mTechniqueSet()
, mTextureTable()
, mConstantTable()
, mStateBitsTable()
{
SetType(ASSET_TYPE_MATERIAL);
SetName("Material");
}
XMaterial::~XMaterial()
{
}
void XMaterial::ParseData(QDataStream *aStream)
{
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);
}
void XMaterial::Clear()
{
mInfo.Clear();
mStateBitsEntry.clear();
mTextureCount = 0;
mConstantCount = 0;
mStateBitsCount = 0;
mStateFlags = 0;
mCameraRegion = 0;
mTechniqueSet = XMaterialTechniqueSet();
mTextureTable = XMaterialTextureDef();
mConstantTable = XMaterialConstantDef();
mStateBitsTable = XGfxStateBits();
}