[IGfxImage] Fix wrong image resolutions
This commit is contained in:
parent
d8b2318acd
commit
0ac7f39b05
@ -18,11 +18,6 @@ namespace Assets
|
|||||||
|
|
||||||
image->name = builder->getAllocator()->duplicateString(name);
|
image->name = builder->getAllocator()->duplicateString(name);
|
||||||
image->semantic = 2;
|
image->semantic = 2;
|
||||||
image->category = 0;
|
|
||||||
image->picmip.platform[0] = 0;
|
|
||||||
image->picmip.platform[1] = 0;
|
|
||||||
image->noPicmip = 0;
|
|
||||||
image->track = 0;
|
|
||||||
|
|
||||||
const char* tempName = image->name;
|
const char* tempName = image->name;
|
||||||
if (tempName[0] == '*') tempName++;
|
if (tempName[0] == '*') tempName++;
|
||||||
@ -42,35 +37,30 @@ namespace Assets
|
|||||||
image->semantic = reader.read<char>();
|
image->semantic = reader.read<char>();
|
||||||
image->category = reader.read<char>();
|
image->category = reader.read<char>();
|
||||||
|
|
||||||
image->cardMemory.platform[0] = reader.read<int>();
|
int dataLength = reader.read<int>();
|
||||||
image->cardMemory.platform[1] = image->cardMemory.platform[0];
|
image->cardMemory.platform[0] = dataLength;
|
||||||
|
image->cardMemory.platform[1] = dataLength;
|
||||||
|
|
||||||
Game::GfxImageLoadDefIW3* loadDef = reinterpret_cast<Game::GfxImageLoadDefIW3*>(reader.readArray<char>(image->cardMemory.platform[0] + 16));
|
Game::GfxImageLoadDefIW3 loadDef;
|
||||||
image->texture.loadDef = reinterpret_cast<Game::GfxImageLoadDef*>(builder->getAllocator()->allocateArray<char>(image->cardMemory.platform[0] + 16));
|
image->texture.loadDef = reinterpret_cast<Game::GfxImageLoadDef*>(reader.readArray<char>(dataLength + 16));
|
||||||
|
std::memcpy(&loadDef, image->texture.loadDef, sizeof(loadDef));
|
||||||
|
|
||||||
image->texture.loadDef->levelCount = loadDef->levelCount;
|
image->texture.loadDef->levelCount = loadDef.levelCount;
|
||||||
image->texture.loadDef->flags = loadDef->flags;
|
image->texture.loadDef->flags = loadDef.flags;
|
||||||
image->texture.loadDef->format = loadDef->format;
|
image->texture.loadDef->format = loadDef.format;
|
||||||
image->texture.loadDef->resourceSize = loadDef->resourceSize;
|
image->texture.loadDef->resourceSize = loadDef.resourceSize;
|
||||||
|
ZeroMemory(image->texture.loadDef->pad, 3);
|
||||||
|
|
||||||
if (image->texture.loadDef->resourceSize != image->cardMemory.platform[0])
|
if (image->texture.loadDef->resourceSize != dataLength)
|
||||||
{
|
{
|
||||||
Components::Logger::Error("Resource size doesn't match the data length (%s)!\n", name.data());
|
Components::Logger::Error("Resource size doesn't match the data length (%s)!\n", name.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::memcpy(image->texture.loadDef->data, loadDef->data, image->texture.loadDef->resourceSize);
|
image->width = loadDef.dimensions[0];
|
||||||
|
image->height = loadDef.dimensions[1];
|
||||||
image->height = loadDef->dimensions[0];
|
image->depth = loadDef.dimensions[2];
|
||||||
image->width = loadDef->dimensions[1];
|
|
||||||
image->depth = loadDef->dimensions[2];
|
|
||||||
|
|
||||||
image->delayLoadPixels = true;
|
image->delayLoadPixels = true;
|
||||||
//image->texture.loadDef->flags = 0;
|
|
||||||
|
|
||||||
if (Utils::String::StartsWith(name, "*lightmap"))
|
|
||||||
{
|
|
||||||
image->texture.loadDef->flags = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
header->image = image;
|
header->image = image;
|
||||||
}
|
}
|
||||||
@ -97,8 +87,8 @@ namespace Assets
|
|||||||
}
|
}
|
||||||
|
|
||||||
image->mapType = Game::MAPTYPE_2D;
|
image->mapType = Game::MAPTYPE_2D;
|
||||||
//image->dataLen1 = iwiHeader->fileSizeForPicmip[0] - 32;
|
image->cardMemory.platform[0] = iwiHeader->fileSizeForPicmip[0] - 32;
|
||||||
//image->dataLen2 = iwiHeader->fileSizeForPicmip[0] - 32;
|
image->cardMemory.platform[1] = iwiHeader->fileSizeForPicmip[0] - 32;
|
||||||
|
|
||||||
image->texture.loadDef = builder->getAllocator()->allocate<Game::GfxImageLoadDef>();
|
image->texture.loadDef = builder->getAllocator()->allocate<Game::GfxImageLoadDef>();
|
||||||
if (!image->texture.loadDef)
|
if (!image->texture.loadDef)
|
||||||
@ -107,11 +97,11 @@ namespace Assets
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
image->texture.loadDef->flags = 0;
|
image->texture.loadDef->flags = iwiHeader->flags;
|
||||||
image->texture.loadDef->levelCount = 0;
|
image->texture.loadDef->levelCount = 0;
|
||||||
|
|
||||||
image->height = iwiHeader->dimensions[0];
|
image->width = iwiHeader->dimensions[0];
|
||||||
image->width = iwiHeader->dimensions[1];
|
image->height = iwiHeader->dimensions[1];
|
||||||
image->depth = iwiHeader->dimensions[2];
|
image->depth = iwiHeader->dimensions[2];
|
||||||
|
|
||||||
switch (iwiHeader->format)
|
switch (iwiHeader->format)
|
||||||
|
@ -1178,8 +1178,8 @@ namespace Components
|
|||||||
int dataLen1;
|
int dataLen1;
|
||||||
int dataLen2;
|
int dataLen2;
|
||||||
char pad2[4]; // ?
|
char pad2[4]; // ?
|
||||||
short height;
|
|
||||||
short width;
|
short width;
|
||||||
|
short height;
|
||||||
short depth;
|
short depth;
|
||||||
char loaded;
|
char loaded;
|
||||||
char pad3[5];
|
char pad3[5];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user