Update XGfxImage parsing logic

This commit is contained in:
njohnson 2025-09-07 23:11:54 -04:00
parent 51a0d00b93
commit e416d47df4

View File

@ -28,44 +28,47 @@ XGfxImage::~XGfxImage()
void XGfxImage::ParseData(QDataStream *aStream) void XGfxImage::ParseData(QDataStream *aStream)
{ {
*aStream >> mMapType; if (GetPtr() == -1)
mTexture.ParseData(aStream);
*aStream >> mSemantic;
aStream->skipRawData(3);
mCardMemory.ParseData(aStream);
qint32 pixelsPtr;
*aStream
>> mWidth
>> mHeight
>> mDepth
>> mCategory
>> mDelayLoadPixels
>> pixelsPtr
>> mBaseSize
>> mStreamSlot
>> mStreaming;
aStream->skipRawData(1);
mName.ParsePtr(aStream);
int variableSkip = 5;
if (mDelayLoadPixels)
{ {
variableSkip = 2; *aStream >> mMapType;
mTexture.ParseData(aStream);
*aStream >> mSemantic;
aStream->skipRawData(3);
mCardMemory.ParseData(aStream);
qint32 pixelsPtr;
*aStream
>> mWidth
>> mHeight
>> mDepth
>> mCategory
>> mDelayLoadPixels
>> pixelsPtr
>> mBaseSize
>> mStreamSlot
>> mStreaming;
aStream->skipRawData(1);
mName.ParsePtr(aStream);
int variableSkip = 5;
if (mDelayLoadPixels)
{
variableSkip = 2;
}
aStream->skipRawData(variableSkip);
if (pixelsPtr)
{
aStream->readRawData(mPixels.data(), mCardMemory.GetPlatform());
}
// TODO: This is wrong
mTexture.ParseData(aStream);
} }
aStream->skipRawData(variableSkip);
if (pixelsPtr)
{
aStream->readRawData(mPixels.data(), mCardMemory.GetPlatform());
}
// TODO: This is wrong
mTexture.ParseData(aStream);
} }
void XGfxImage::Clear() void XGfxImage::Clear()