#include "xmaterial.h" XMaterial::XMaterial() : XAsset() , mInfo() , mStateBitsEntry(34) , mTextureCount(0) , mConstantCount(0) , mStateBitsCount(0) , mStateFlags(0) , mCameraRegion(0) , mTechniqueSet() , mTextureTable() , mConstantTable() , mStateBitsTable() { SetType(ASSET_TYPE_MATERIAL); SetName("Material"); } void XMaterial::ParseData(XDataStream *aStream) { mInfo.ParseData(aStream); AddSubAsset(&mInfo); for (int i = 0; i < 34; i++) { mStateBitsEntry[i] = aStream->ParseUInt8(QString("%1 state bits entry %2").arg(GetName()).arg(i + 1)); } mTextureCount = aStream->ParseUInt8(QString("%1 texture count").arg(GetName())); mConstantCount = aStream->ParseUInt8(QString("%1 constant count").arg(GetName())); mStateBitsCount = aStream->ParseUInt8(QString("%1 state bits count").arg(GetName())); mStateFlags = aStream->ParseUInt8(QString("%1 state flags").arg(GetName())); mCameraRegion = aStream->ParseUInt8(QString("%1 camera region").arg(GetName())); aStream->skipRawData(1); mTechniqueSet.SetCommonInfo(GetCommonInfo()); mTechniqueSet.ParsePtr(aStream, false); mTextureTable.SetCommonInfo(GetCommonInfo()); mTextureTable.ParsePtr(aStream, false); mConstantTable.SetCommonInfo(GetCommonInfo()); mConstantTable.ParsePtr(aStream, false); mStateBitsTable.SetCommonInfo(GetCommonInfo()); mStateBitsTable.ParsePtr(aStream, false); XString materialName = mInfo.MaterialName(); materialName.SetRemoveString(","); materialName.ParseDataSafe(aStream); AddSubAsset(&materialName); SetDisplayName(materialName.GetString()); mInfo.SetMaterialName(materialName); mTechniqueSet.ParseDataSafe(aStream); AddSubAsset(&mTechniqueSet); mTextureTable.ParseDataSafe(aStream); AddSubAsset(&mTextureTable); mConstantTable.ParseDataSafe(aStream); AddSubAsset(&mConstantTable); mStateBitsTable.ParseDataSafe(aStream); AddSubAsset(&mStateBitsTable); } 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(); } XMaterialInfo XMaterial::Info() const { return mInfo; } void XMaterial::SetInfo(const XMaterialInfo &aInfo) { mInfo = aInfo; } QVector XMaterial::StateBitsEntry() const { return mStateBitsEntry; } void XMaterial::SetStateBitsEntry(const QVector &aStateBitsEntry) { mStateBitsEntry = aStateBitsEntry; } quint8 XMaterial::TextureCount() const { return mTextureCount; } void XMaterial::SetTextureCount(quint8 aTextureCount) { mTextureCount = aTextureCount; } quint8 XMaterial::ConstantCount() const { return mConstantCount; } void XMaterial::SetConstantCount(quint8 aConstantCount) { mConstantCount = aConstantCount; } quint8 XMaterial::StateBitsCount() const { return mStateBitsCount; } void XMaterial::SetStateBitsCount(quint8 aStateBitsCount) { mStateBitsCount = aStateBitsCount; } quint8 XMaterial::StateFlags() const { return mStateFlags; } void XMaterial::SetStateFlags(quint8 aStateFlags) { mStateFlags = aStateFlags; } quint8 XMaterial::CameraRegion() const { return mCameraRegion; } void XMaterial::SetCameraRegion(quint8 aCameraRegion) { mCameraRegion = aCameraRegion; } XMaterialTechniqueSet XMaterial::TechniqueSet() const { return mTechniqueSet; } void XMaterial::SetTechniqueSet(const XMaterialTechniqueSet &aTechniqueSet) { mTechniqueSet = aTechniqueSet; } XMaterialTextureDef XMaterial::TextureTable() const { return mTextureTable; } void XMaterial::SetTextureTable(const XMaterialTextureDef &aTextureTable) { mTextureTable = aTextureTable; } XMaterialConstantDef XMaterial::ConstantTable() const { return mConstantTable; } void XMaterial::SetConstantTable(const XMaterialConstantDef &aConstantTable) { mConstantTable = aConstantTable; } XGfxStateBits XMaterial::StateBitsTable() const { return mStateBitsTable; } void XMaterial::SetStateBitsTable(const XGfxStateBits &aStateBitsTable) { mStateBitsTable = aStateBitsTable; }