diff --git a/libs/xassets/xmaterial.cpp b/libs/xassets/xmaterial.cpp index a7b3160..03795a0 100644 --- a/libs/xassets/xmaterial.cpp +++ b/libs/xassets/xmaterial.cpp @@ -3,7 +3,7 @@ XMaterial::XMaterial() : XAsset() , mInfo() - , mStateBitsEntry() + , mStateBitsEntry(26) , mTextureCount(0) , mConstantCount(0) , mStateBitsCount(0) @@ -25,7 +25,31 @@ 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()