#ifndef XGFXWORLDDPVSSTATIC_H
#define XGFXWORLDDPVSSTATIC_H

#include "xasset.h"
#include "xgfxsurface.h"
#include "xgfxcullgroup.h"
#include "xgfxstaticmodelinst.h"
#include "xgfxstaticmodeldrawinst.h"

#include <QVector>

class XGfxWorldDpvsStatic : public XAsset
{
public:
    XGfxWorldDpvsStatic();
    ~XGfxWorldDpvsStatic();

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

private:
    quint32 mModelCount;
    quint32 mStaticSurfaceCount;
    quint32 mLitSurfsBegin;
    quint32 mLitSurfsEnd;
    quint32 mDecalSurfsBegin;
    quint32 mDecalSurfsEnd;
    quint32 mEmissiveSurfsBegin;
    quint32 mEmissiveSurfsEnd;
    quint32 mModelVisDataCount;
    quint32 mSurfaceVisDataCount;
    QVector<quint8*> mSmodelVisData;
    QVector<quint8*> mSurfaceVisData;
    quint32*mLodData;
    quint32 *mSortedSurfIndex;
    QVector<XGfxStaticModelInst> *mModelInsts;
    QVector<XGfxSurface> *mSurfaces;
    QVector<XGfxCullGroup> *mCullGroups;
    QVector<XGfxStaticModelDrawInst> *mModelDrawInsts;
    QVector<XGfxDrawSurfFields> *mSurfaceMaterials;
    quint32*mSurfaceCastsSunShadow;
    int mUsageCount;
};

#endif // XGFXWORLDDPVSSTATIC_H
