#ifndef XMATERIALPASS_H
#define XMATERIALPASS_H

#include "xasset.h"

#include <QVector>

class XMaterialVertexDeclaration;
class XMaterialVertexShader;
class XMaterialPixelShader;
class XMaterialShaderArgument;

class XMaterialPass : public XAsset
{
public:
    XMaterialPass();

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

private:
    XMaterialVertexDeclaration* mVertexDecl;
    QVector<XMaterialVertexShader*> mVertexShaderArray;
    XMaterialVertexShader* mVertexShader;
    XMaterialPixelShader* mPixelShader;
    int mPerPrimArgCount;
    int mPerObjArgCount;
    int mStableArgCount;
    int mCustomSamplerFlags;
    int mPrecompiledIndex;
    XMaterialShaderArgument* mArgs;
};

#endif // XMATERIALPASS_H
