protected override Task <Texture> GetNewTextureAsync(int id) { var textures = data.textures; var width = (int)textures.desc[id].width; var height = (int)textures.desc[id].height; var levels = (int)textures.desc[id].levels; var type = (int)textures.desc[id].type; var stream = textures.data[id]; Texture texture; switch (type) { case 0x0C: texture = new DXT1Texture(id, width, height, levels, Endianness.LittleEndian, stream); break; case 0x0F: texture = new DXT5Texture(id, width, height, levels, Endianness.LittleEndian, stream); break; default: texture = new UnknownTexture(id, width, height, levels, stream); break; } return(Task.FromResult(texture)); }
public DDSTexture(int id, DDSInfo info, Stream stream) : base(id, info.Width, info.Height, info.Levels, stream) { switch (info.PixelFormat) { case DXTType.DXT1: Inner = new DXT1Texture(Id, Width, Height, Levels, Endianness.LittleEndian, info.Stream); break; case DXTType.DXT3: Inner = new DXT3Texture(Id, Width, Height, Levels, Endianness.LittleEndian, info.Stream); break; case DXTType.DXT5: Inner = new DXT5Texture(Id, Width, Height, Levels, Endianness.LittleEndian, info.Stream); break; } }