XPlor/libs/xassets/xgfximage.cpp

76 lines
1.9 KiB
C++
Raw Normal View History

2025-08-17 13:14:17 -04:00
#include "xgfximage.h"
2025-09-05 18:35:17 -04:00
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)
2025-09-10 21:58:26 -04:00
, mName()
2025-09-05 18:35:17 -04:00
{
SetType(ASSET_TYPE_IMAGE);
2025-09-10 21:58:26 -04:00
SetName("GFX Image");
2025-09-05 18:35:17 -04:00
}
XGfxImage::~XGfxImage()
{
}
2025-09-10 21:58:26 -04:00
void XGfxImage::ParseData(XDataStream *aStream)
2025-09-05 18:35:17 -04:00
{
2025-09-07 23:11:54 -04:00
if (GetPtr() == -1)
{
2025-09-10 21:58:26 -04:00
mMapType = (XMapType)aStream->ParseUInt32(QString("%1 map type").arg(GetName()));
2025-09-05 18:35:17 -04:00
2025-09-10 21:58:26 -04:00
mTexture.ParsePtr(aStream, false);
2025-09-07 12:36:08 -04:00
2025-09-10 21:58:26 -04:00
mSemantic = aStream->ParseUInt8(QString("%1 semantic").arg(GetName()));
2025-09-07 12:36:08 -04:00
2025-09-07 23:11:54 -04:00
aStream->skipRawData(3);
2025-09-07 12:36:08 -04:00
2025-09-07 23:11:54 -04:00
mCardMemory.ParseData(aStream);
2025-09-07 12:36:08 -04:00
2025-09-07 23:11:54 -04:00
qint32 pixelsPtr;
2025-09-10 21:58:26 -04:00
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()));
2025-09-07 12:36:08 -04:00
2025-09-07 23:11:54 -04:00
aStream->skipRawData(1);
2025-09-07 12:36:08 -04:00
2025-09-07 23:11:54 -04:00
mName.ParsePtr(aStream);
2025-09-07 12:36:08 -04:00
2025-09-10 21:58:26 -04:00
//int variableSkip = mDelayLoadPixels ? 2 : 5;
//aStream->skipRawData(variableSkip);
if (pixelsPtr == -1)
2025-09-07 23:11:54 -04:00
{
2025-09-10 21:58:26 -04:00
mPixels.resize(mCardMemory.GetPlatform());
2025-09-07 23:11:54 -04:00
aStream->readRawData(mPixels.data(), mCardMemory.GetPlatform());
}
2025-09-10 21:58:26 -04:00
2025-09-07 23:11:54 -04:00
mTexture.ParseData(aStream);
2025-09-07 12:36:08 -04:00
}
2025-09-05 18:35:17 -04:00
}
void XGfxImage::Clear()
{
}