#ifndef XMATERIALPASS_H
#define XMATERIALPASS_H

#include "xasset.h"
#include "xmaterialpixelshader.h"
#include "xmaterialshaderargument.h"
#include "xmaterialvertexdeclaration.h"
#include "xmaterialvertexshader.h"

#include <QVector>

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;
    QVector<XMaterialShaderArgument> mArgs;
};

#endif // XMATERIALPASS_H
