public async Task ApplyToModels(ModelsEx models) { // clear images if (ImportMode == ViewerConfig.ImportMode.Replace) { models.Images.Clear(); } var import = new ImportDialogController(models); var layerMipmaps = new LayerMipmapCount(NumLayers, NumMipmaps); var imgSize = new Size3(Width, Height, Depth); // add images from config foreach (var img in Images) { if (img.Data == null) { await import.ImportImageAsync(img.Filename, img.Alias); } else { Debug.Assert(img.Format != null); var fmt = new ImageFormat(img.Format.Value); // load base 64 bytes var bytes = System.Convert.FromBase64String(img.Data); bytes = Compression.Decompress(bytes); var bi = new ByteImageData(bytes, layerMipmaps, imgSize, fmt); ITexture tex = null; if (bi.Is3D) { tex = new Texture3D(bi); } else { tex = new TextureArray2D(bi); } try { models.Images.AddImage(tex, false, img.Filename, fmt.GliFormat, img.Alias); } catch (Exception e) { tex?.Dispose(); models.Window.ShowErrorDialog(e); } } } }
private void LoadByteData() { byteData = Resources.Load <ByteImageData>("ByteImageData"); }