#ifndef XMATERIAL_H
#define XMATERIAL_H

#include "xmaterialtechniqueset.h"
#include "xgfxstatebits.h"
#include "xmaterialinfo.h"
#include "xmaterialtexturedef.h"
#include "xmaterialconstantdef.h"

class XMaterial : public XAsset
{
public:
    explicit XMaterial();
    ~XMaterial() override;

    virtual void ParseData(XDataStream* aStream) override;
    virtual void Clear() override;

private:
    XMaterialInfo mInfo;
    QVector<quint8> mStateBitsEntry;
    quint8 mTextureCount;
    quint8 mConstantCount;
    quint8 mStateBitsCount;
    quint8 mStateFlags;
    quint8 mCameraRegion;
    XMaterialTechniqueSet mTechniqueSet;
    XMaterialTextureDef mTextureTable;
    XMaterialConstantDef mConstantTable;
    XGfxStateBits mStateBitsTable;
};

#endif // MATERIAL_H
