protected override Asset Load()
{
if (Archive.Platform == DSPlatform.PS3) {
using (var stream = Open()) {
Texture2D texture = new Texture2D();
Format format = Ps3Format;
Vector2i dimensions = Ps3Dimensions;
byte[] data = new byte[format.AlignedByteSize(dimensions)];
for (int level = 0; ; level++) {
TextureLevel2D textureLevel = texture.Surface.Levels[level];
int size = format.AlignedByteSize(dimensions);
stream.Read(data, 0, size);
textureLevel.DataCompressed(format, dimensions, data);
if (dimensions == Vector2i.One)
break;
dimensions.X = Math.Max(1, (dimensions.X + 1) / 2);
dimensions.Y = Math.Max(1, (dimensions.Y + 1) / 2);
}
return new TextureAsset(Manager, Name, texture);
}
} else
return base.Load();
}