/// <inheritdoc /> public object?ReadContent(IContentManager contentManager, ref ContentReaderParameters parameters) { IGraphicsDevice graphicsDevice = contentManager.ServiceRegistry.GetService <IGraphicsDevice>(); return(Texture.Load(graphicsDevice.Device, parameters.Stream)); }
/// <inheritdoc /> public object?ReadContent(IContentManager contentManager, ref ContentReaderParameters parameters) { SpriteFont font = ContentSerializer.Read <SpriteFont>(parameters.Stream); if (font.ImageData.Length <= 0) { return(null); } IGraphicsDevice graphicsDevice = contentManager.ServiceRegistry.GetService <IGraphicsDevice>(); try { using (MemoryStream ms = new MemoryStream(font.ImageData) { Position = 0 }) { font.Texture = Texture.Load(graphicsDevice.Device, ms) ?? throw new NullReferenceException($"{nameof(font.Texture)}"); } } catch { return(null); } return(font); }
public object ReadContent(IContentManager readerManager, ref ContentReaderParameters parameters) { parameters.KeepStreamOpen = false; var image = Image.Load(parameters.Stream); if (image != null) { image.Name = parameters.AssetName; } return(image); }
object IContentReader.ReadContent(IContentManager readerManager, ref ContentReaderParameters parameters) { parameters.KeepStreamOpen = false; var service = readerManager.ServiceProvider.GetService(typeof(IGraphicsDeviceService)) as IGraphicsDeviceService; if (service == null) { throw new InvalidOperationException("Unable to retrieve a IGraphicsDeviceService service provider"); } if (service.GraphicsDevice == null) { throw new InvalidOperationException("GraphicsDevice is not initialized"); } return(ReadContent(readerManager, service.GraphicsDevice, ref parameters)); }
/// <summary> /// Reads the content and performs any common precondition checks. /// </summary> /// <param name="contentManager">The content manager.</param> /// <param name="parameters">The content reader parameters.</param> /// <returns>The loaded audio content object.</returns> /// <exception cref="ArgumentNullException">Is thrown when <paramref name="contentManager"/> is null.</exception> /// <exception cref="ArgumentException">Is thrown when <paramref name="parameters"/> <see cref="ContentReaderParameters.AssetType"/> is not <typeparamref name="TAsset"/></exception> /// <exception cref="InvalidOperationException">Is thrown when <paramref name="contentManager"/> <see cref="IContentManager.ServiceProvider"/> doesn't contain an <see cref="AudioManager"/> service.</exception> public object ReadContent(IContentManager contentManager, ref ContentReaderParameters parameters) { if (contentManager == null) { throw new ArgumentNullException("contentManager"); } if (parameters.AssetType != typeof(TAsset)) { var message = string.Format("Invalid asset type, expected {0} but got {1}", typeof(TAsset), parameters.AssetType); throw new ArgumentException(message, "parameters"); } var audioManager = contentManager.ServiceProvider.GetService(typeof(AudioManager)) as AudioManager; if (audioManager == null) { throw new InvalidOperationException("Cannot read WaveBank without AudioManager."); } return(ReadContentInternal(audioManager, ref parameters)); }
protected override Model ReadContent(IContentManager readerManager, GraphicsDevice device, ref ContentReaderParameters parameters) { var readerOptions = parameters.Options as ModelContentReaderOptions; if (parameters.Options != null && readerOptions == null) { throw new ArgumentException("Invalid options. Must be instance of ModelContentReaderOptions", "options"); } var assetPath = Path.GetDirectoryName(parameters.AssetName); // Loads the model. var model = Model.Load(device, parameters.Stream, name => { // Try to load the texture with its texture path as is // otherwise try to load with tkb extension var texturePath = Path.Combine(assetPath ?? string.Empty, name); if (!readerManager.Exists(texturePath)) { // Use the extension tkb to load a texture texturePath = Path.ChangeExtension(texturePath, "tkb"); } // If the texture exists, return it, otherwise return null without throwing an exception. return(readerManager.Exists(texturePath) ? readerManager.Load <Texture>(texturePath) : null); }); if (model == null) { return(null); } // If the model has no name, use filename if (model.Name == null) { model.Name = Path.GetFileName(parameters.AssetName); } // Applies the Effect installer on the model. bool disableInstaller = readerOptions != null && readerOptions.DisableEffectInstaller; if (!disableInstaller) { IEffectInstaller effectInstaller; if (readerOptions != null && readerOptions.EffectInstaller != null) { effectInstaller = readerOptions.EffectInstaller; } else { effectInstaller = new BasicEffectInstaller(device); } effectInstaller.Apply(model); } return(model); }
protected abstract T ReadContent(IContentManager readerManager, GraphicsDevice device, ref ContentReaderParameters parameters);
protected override SoundEffect ReadContentInternal(AudioManager audioManager, ref ContentReaderParameters parameters) { return(SoundEffect.FromStream(audioManager, parameters.Stream, parameters.AssetName)); }
public object ReadContent(IContentManager contentManager, ref ContentReaderParameters parameters) { var service = contentManager.ServiceProvider.GetService(typeof(IGraphicsDeviceService)) as IGraphicsDeviceService; if (service == null) { throw new InvalidOperationException("Unable to retrieve a IGraphicsDeviceService service provider"); } if (service.GraphicsDevice == null) { throw new InvalidOperationException("GraphicsDevice is not initialized"); } string asset = parameters.AssetName; if (Path.GetExtension(asset).ToLower() == ".dat") { return(D2.FileTypes.StreamHelper.ReadToEnd(parameters.Stream)); } if (Path.GetExtension(asset).ToLower() == ".ds1") { return(new DS1File(parameters.Stream)); } if (Path.GetExtension(asset).ToLower() == ".dt1") { byte[] palette = null; Context.Send(_ => { palette = contentManager.Load <byte[]>(@"data\global\palette\act1\pal.dat"); }, null); var dt1Texture = new DT1Texture(); dt1Texture.File = new DT1File(parameters.Stream, palette); int floorCount = dt1Texture.File.FloorHeaders.Count; if (floorCount > 0) { Context.Send(_ => { dt1Texture.FloorsTexture = Texture2D.New(service.GraphicsDevice, 128, 128, SharpDX.Toolkit.Graphics.PixelFormat.B8G8R8A8.UNorm, arraySize: floorCount); }, null); for (int i = 0; i < floorCount; i++) { //var ms = new MemoryStream(); //dt1Texture.File.GetFloorImage(i).Save(ms, ImageFormat.Bmp); //var data = ms.ToArray().Skip(54).ToArray(); var data = BitmapToByteArray(dt1Texture.File.GetFloorImage(i) as Bitmap); Context.Send(_ => { dt1Texture.FloorsTexture.SetData(service.GraphicsDevice, data, i, 0, null); }, null); } } int wallCount = dt1Texture.File.WallHeaders.Count; if (wallCount > 0) { Context.Send(_ => { dt1Texture.WallsTexture = Texture2D.New(service.GraphicsDevice, 160, 960, SharpDX.Toolkit.Graphics.PixelFormat.B8G8R8A8.UNorm, arraySize: wallCount); }, null); for (int i = 0; i < wallCount; i++) { //var ms = new MemoryStream(); //dt1Texture.File.GetWallImage(i).Save(ms, ImageFormat.Bmp); //var data = ms.ToArray().Skip(54).ToArray(); var data = BitmapToByteArray(dt1Texture.File.GetWallImage(i) as Bitmap); Context.Send(_ => { dt1Texture.WallsTexture.SetData(service.GraphicsDevice, data, i, 0, null); }, null); } } return(dt1Texture); } if (Path.GetExtension(asset).ToLower() == ".dc6") { byte[] palette = null; Context.Send(_ => { palette = contentManager.Load <byte[]>(@"data\global\palette\loading\pal.dat"); }, null); var dc6File = new DC6File(D2.FileTypes.StreamHelper.ReadToEnd(parameters.Stream), palette); int maxWidth = 0; int maxHeight = 0; var frames = dc6File.Transform(); foreach (var frame in frames) { maxWidth = Math.Max(frame.Width, maxWidth); maxHeight = Math.Max(frame.Height, maxHeight); } Texture2D dc6Texture = null; Context.Send(_ => { dc6Texture = Texture2D.New(service.GraphicsDevice, maxWidth, maxHeight, SharpDX.Toolkit.Graphics.PixelFormat.B8G8R8A8.UNorm, arraySize: frames.Count); }, null); int i = 0; foreach (var frame in frames) { //var ms = new MemoryStream(); //frame.Save(ms, ImageFormat.Bmp); //var data = ms.ToArray().Skip(54).ToArray(); var data = BitmapToByteArray(frame as Bitmap); Context.Send(_ => { dc6Texture.SetData(service.GraphicsDevice, data, i++, 0, null); }, null); } return(dc6Texture); } var texture = Texture.Load(service.GraphicsDevice, parameters.Stream); if (texture != null) { texture.Name = parameters.AssetName; } return(texture); }
public object ReadContent(IContentManager readerManager, ref ContentReaderParameters parameters) { parameters.KeepStreamOpen = false; return(EffectData.Load(parameters.Stream)); }
object IContentReader.ReadContent(IContentManager contentManagerArg, ref ContentReaderParameters parameters) { return(serializer.Deserialize(parameters.Stream, parameters.AssetType)); }
protected override Effect ReadContent(IContentManager readerManager, GraphicsDevice device, ref ContentReaderParameters parameters) { var effectData = EffectData.Load(parameters.Stream); if (effectData == null) { return(null); } if (parameters.AssetType == typeof(Effect)) { return(new Effect(device, effectData)); } // Else, create a specific instance of effect using a constructor (GraphicsDevice, EffectData) return((Effect)Activator.CreateInstance(parameters.AssetType, device, effectData)); }
protected override SpriteFont ReadContent(IContentManager readerManager, GraphicsDevice device, ref ContentReaderParameters parameters) { SpriteFont spriteFont = null; var assetPath = Path.GetDirectoryName(parameters.AssetName); // Load the sprite font data var spriteFontData = SpriteFontData.Load(parameters.Stream, name => readerManager.Load <Texture2D>(Path.Combine(assetPath ?? string.Empty, name))); // If sprite font was fine, then instantiate SpriteFont graphics object. if (spriteFontData != null) { spriteFont = SpriteFont.New(device, spriteFontData); } return(spriteFont); }
protected override WaveBank ReadContentInternal(AudioManager audioManager, ref ContentReaderParameters parameters) { return(WaveBank.FromStream(audioManager, parameters.Stream)); }
/// <inheritdoc /> public object?ReadContent(IContentManager contentManager, ref ContentReaderParameters parameters) { return(s_objFileLoader.Load(parameters.Stream)); }
/// <summary> /// Derived class must implement this method to perform the actual asset reading. /// </summary> /// <param name="audioManager">The associated audio manager.</param> /// <param name="parameters">The content reader parameters containing the asset data stream.</param> /// <returns>The loaded asset.</returns> protected abstract TAsset ReadContentInternal(AudioManager audioManager, ref ContentReaderParameters parameters);
protected override Texture ReadContent(IContentManager readerManager, GraphicsDevice device, ref ContentReaderParameters parameters) { var texture = Texture.Load(device, parameters.Stream); if (texture != null) { texture.Name = parameters.AssetName; } return(texture); }