private DXImage GetImageForImageElement(ImageElement element) { DXImage result = null; if (!_imageCache.TryGetValue(element, out result)) { result = ToDispose(new DXImage(_device, _deviceContext)); result.Initialise(element.Bitmap); _imageCache[element] = result; } return result; }
private Texture GetImageForImageElement(ImageElement element) { Texture result = null; if (!string.IsNullOrEmpty(element.Filename)) { if (!_imageCache.TryGetValue(element, out result)) { result = ToDispose(Texture.FromFile(Device, element.Filename)); _imageCache[element] = result; } } else { if (!_imageCache.TryGetValue(element, out result) && element.Bitmap != null) { using (var ms = new MemoryStream()) { // TODO: hard-coded target format problematic? element.Bitmap.Save(ms, ImageFormat.Png); ms.Seek(0, SeekOrigin.Begin); result = ToDispose(Texture.FromStream(Device, ms)); } _imageCache[element] = result; } } return result; }