private static Texture CreateTextureFromTga( GraphicsDevice graphicsDevice, ResourceUploadBatch uploadBatch, TgaFile tgaFile, bool generateMipMaps) { if (tgaFile.Header.ImageType != TgaImageType.UncompressedRgb) { throw new InvalidOperationException(); } var data = ConvertTgaPixels( tgaFile.Header.ImagePixelSize, tgaFile.Data); TextureMipMapData[] mipMapData; if (generateMipMaps) { mipMapData = MipMapUtility.GenerateMipMaps( tgaFile.Header.Width, tgaFile.Header.Height, data); } else { mipMapData = new[] { new TextureMipMapData { Data = data, BytesPerRow = tgaFile.Header.Width * 4 } }; } return(Texture.CreateTexture2D( graphicsDevice, uploadBatch, PixelFormat.Rgba8UNorm, tgaFile.Header.Width, tgaFile.Header.Height, mipMapData)); }
public static TextureMipMapData[] GetData(TgaFile tgaFile, bool generateMipMaps) { var data = TgaFile.ConvertPixelsToRgba8(tgaFile); if (generateMipMaps) { return(MipMapUtility.GenerateMipMaps( tgaFile.Header.Width, tgaFile.Header.Height, data)); } else { return(new[] { new TextureMipMapData { Data = data, BytesPerRow = tgaFile.Header.Width * 4 } }); } }