76 lines
1.9 KiB
C++
76 lines
1.9 KiB
C++
#include "xgfximage.h"
|
|
|
|
XGfxImage::XGfxImage()
|
|
: XAsset()
|
|
, mMapType()
|
|
, mTexture()
|
|
, mSemantic(0)
|
|
, mCardMemory()
|
|
, mWidth(0)
|
|
, mHeight(0)
|
|
, mDepth(0)
|
|
, mCategory(0)
|
|
, mDelayLoadPixels(false)
|
|
, mPixels()
|
|
, mBaseSize(0)
|
|
, mStreamSlot(0)
|
|
, mStreaming(false)
|
|
, mName()
|
|
{
|
|
SetType(ASSET_TYPE_IMAGE);
|
|
SetName("GFX Image");
|
|
}
|
|
|
|
XGfxImage::~XGfxImage()
|
|
{
|
|
|
|
}
|
|
|
|
void XGfxImage::ParseData(XDataStream *aStream)
|
|
{
|
|
if (GetPtr() == -1)
|
|
{
|
|
mMapType = (XMapType)aStream->ParseUInt32(QString("%1 map type").arg(GetName()));
|
|
|
|
mTexture.ParsePtr(aStream, false);
|
|
|
|
mSemantic = aStream->ParseUInt8(QString("%1 semantic").arg(GetName()));
|
|
|
|
aStream->skipRawData(3);
|
|
|
|
mCardMemory.ParseData(aStream);
|
|
|
|
qint32 pixelsPtr;
|
|
|
|
mWidth = aStream->ParseUInt16(QString("%1 width").arg(GetName()));
|
|
mHeight = aStream->ParseUInt16(QString("%1 height").arg(GetName()));
|
|
mDepth = aStream->ParseUInt16(QString("%1 depth").arg(GetName()));
|
|
mCategory = aStream->ParseUInt8(QString("%1 category").arg(GetName()));
|
|
mDelayLoadPixels = aStream->ParseUInt8(QString("%1 delay load pixels").arg(GetName()));
|
|
pixelsPtr = aStream->ParseInt32(QString("%1 pixels ptr").arg(GetName()));
|
|
mBaseSize = aStream->ParseUInt32(QString("%1 base size").arg(GetName()));
|
|
mStreamSlot = aStream->ParseUInt16(QString("%1 stream slot").arg(GetName()));
|
|
mStreaming = aStream->ParseUInt8(QString("%1 streaming").arg(GetName()));
|
|
|
|
aStream->skipRawData(1);
|
|
|
|
mName.ParsePtr(aStream);
|
|
|
|
//int variableSkip = mDelayLoadPixels ? 2 : 5;
|
|
//aStream->skipRawData(variableSkip);
|
|
|
|
if (pixelsPtr == -1)
|
|
{
|
|
mPixels.resize(mCardMemory.GetPlatform());
|
|
aStream->readRawData(mPixels.data(), mCardMemory.GetPlatform());
|
|
}
|
|
|
|
mTexture.ParseData(aStream);
|
|
}
|
|
}
|
|
|
|
void XGfxImage::Clear()
|
|
{
|
|
|
|
}
|