public async Task LoadAsync(byte[] data, Device device) { var id = ++_resourceId; var resource = await Task.Run(() => ShaderResourceView.FromMemory(device, data)); if (id != _resourceId) return; Resource = resource; }
protected override IRenderableTexture CreateTexture(IDeviceContextHolder contextHolder, string key) { var result = new RenderableTexture(); if (_directory == null) { return(result); } var filename = Path.Combine(_directory, key); if (File.Exists(filename)) { result.Exists = true; if (_asyncLoading) { TaskExtension.Forget(result.LoadAsync(contextHolder, filename)); } else { result.Load(contextHolder, filename); } } return(Textures[filename] = result); }