60 lines
1.9 KiB
C++
60 lines
1.9 KiB
C++
#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() = default;
|
|
|
|
virtual void ParseData(XDataStream* aStream) override;
|
|
virtual void Clear() override;
|
|
|
|
XMaterialInfo Info() const;
|
|
void SetInfo(const XMaterialInfo &aInfo);
|
|
QVector<quint8> StateBitsEntry() const;
|
|
void SetStateBitsEntry(const QVector<quint8> &aStateBitsEntry);
|
|
quint8 TextureCount() const;
|
|
void SetTextureCount(quint8 aTextureCount);
|
|
quint8 ConstantCount() const;
|
|
void SetConstantCount(quint8 aConstantCount);
|
|
quint8 StateBitsCount() const;
|
|
void SetStateBitsCount(quint8 aStateBitsCount);
|
|
quint8 StateFlags() const;
|
|
void SetStateFlags(quint8 aStateFlags);
|
|
quint8 CameraRegion() const;
|
|
void SetCameraRegion(quint8 aCameraRegion);
|
|
XMaterialTechniqueSet TechniqueSet() const;
|
|
void SetTechniqueSet(const XMaterialTechniqueSet &aTechniqueSet);
|
|
XMaterialTextureDef TextureTable() const;
|
|
void SetTextureTable(const XMaterialTextureDef &aTextureTable);
|
|
XMaterialConstantDef ConstantTable() const;
|
|
void SetConstantTable(const XMaterialConstantDef &aConstantTable);
|
|
XGfxStateBits StateBitsTable() const;
|
|
void SetStateBitsTable(const XGfxStateBits &aStateBitsTable);
|
|
|
|
XString MaterialName() const;
|
|
void SetMaterialName(const XString &aName);
|
|
|
|
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
|