public Shader(IDisposableResource parent, string filename, ShaderVersions shaderVersion, ShaderFloatingPointQuality vsQuality, ShaderFloatingPointQuality psQuality, Loader.LoadedCallbackMethod loadedCallback) : base(parent) { #if WINRT || WP8 Loader.AddLoadable(this); filename = Streams.StripFileExt(filename) + ".mrs"; #endif new StreamLoader(filename, delegate(object sender, bool succeeded) { if (succeeded) { init(filename, ((StreamLoader)sender).LoadedStream, shaderVersion, vsQuality, psQuality, loadedCallback); } else { FailedToLoad = true; Dispose(); if (loadedCallback != null) { loadedCallback(this, false); } } }); }
public ImageWP8(Stream stream, bool flip, Loader.LoadedCallbackMethod loadedCallback) { Loader.AddLoadable(this); this.flip = flip; this.loadedCallback = loadedCallback; image = new BitmapImage(); image.ImageOpened += image_ImageOpened; image.ImageFailed += image_ImageFailed; image.SetSource(stream); }
public ImageWP8(string fileName, bool flip, Loader.LoadedCallbackMethod loadedCallback) { Loader.AddLoadable(this); this.flip = flip; this.loadedCallback = loadedCallback; image = new BitmapImage(); image.ImageOpened += image_ImageOpened; image.ImageFailed += image_ImageFailed; image.UriSource = new Uri(fileName, UriKind.Relative); }
public Model(IDisposableResource parent, SoftwareModel softwareModel, bool loadColors, bool loadUVs, bool loadNormals, string contentDirectory, Dictionary <string, Type> materialTypes, List <MaterialFieldBinder> value1BinderTypes, List <MaterialFieldBinder> value2BinderTypes, List <MaterialFieldBinder> value3BinderTypes, List <MaterialFieldBinder> value4BinderTypes, List <MaterialFieldBinder> textureBinderTypes, Dictionary <string, string> fileExtOverrides, int classicInstanceCount, Loader.LoadedCallbackMethod loadedCallback) : base(parent) { Loader.AddLoadable(this); new LoadWaiter(new ILoadable[] { softwareModel }, delegate(object sender, bool succeeeded) { if (succeeeded) { using (var stream = new MemoryStream()) { try { Model.Save(stream, false, softwareModel, loadColors, loadUVs, loadNormals); stream.Position = 0; } catch (Exception e) { FailedToLoad = true; Dispose(); if (loadedCallback != null) { loadedCallback(this, false); } } if (!FailedToLoad) { init(null, stream, contentDirectory, materialTypes, value1BinderTypes, value2BinderTypes, value3BinderTypes, value4BinderTypes, textureBinderTypes, fileExtOverrides, classicInstanceCount, loadedCallback); } } } else { FailedToLoad = true; Dispose(); if (loadedCallback != null) { loadedCallback(this, false); } } }); }
public ImageMetro(string fileName, bool flip, Loader.LoadedCallbackMethod loadedCallback) { Loader.AddLoadable(this); new StreamLoader(fileName, delegate(object sender, bool succeeded) { if (succeeded) { init(((StreamLoader)sender).LoadedStream, flip, loadedCallback); } else { FailedToLoad = true; if (loadedCallback != null) { loadedCallback(this, false); } } }); }
public Model(IDisposableResource parent, string filename, string contentDirectory, Dictionary <string, Type> materialTypes, List <MaterialFieldBinder> value1BinderTypes, List <MaterialFieldBinder> value2BinderTypes, List <MaterialFieldBinder> value3BinderTypes, List <MaterialFieldBinder> value4BinderTypes, List <MaterialFieldBinder> textureBinderTypes, Dictionary <string, string> fileExtOverrides, int classicInstanceCount, Loader.LoadedCallbackMethod loadedCallback) : base(parent) { Loader.AddLoadable(this); new StreamLoader(filename, delegate(object sender, bool succeeded) { if (succeeded) { init(filename, ((StreamLoader)sender).LoadedStream, contentDirectory, materialTypes, value1BinderTypes, value2BinderTypes, value3BinderTypes, value4BinderTypes, textureBinderTypes, fileExtOverrides, classicInstanceCount, loadedCallback); } else { FailedToLoad = true; Dispose(); if (loadedCallback != null) { loadedCallback(this, false); } } }); }
protected override void init(Stream stream, bool flip, Loader.LoadedCallbackMethod loadedCallback) { try { ImageType = ImageTypes.BMPC; ImageFormat = ImageFormats.BMPC; SurfaceFormat = SurfaceFormats.RGBAx8; using (var reader = new BinaryReader(stream)) { // File Type int type = reader.ReadInt32(); if (type != Streams.MakeFourCC('b', 'm', 'p', 'c')) { throw new Exception("Not a .bmpc file"); } // Version float version = reader.ReadSingle(); if (version != 1.0f) { throw new Exception("Unsuported .bmpc version"); } // Meta Data Size = new Size2(reader.ReadInt32(), reader.ReadInt32()); bool zipCompressed = reader.ReadBoolean(); // Data using (var decompressedDataStream = new MemoryStream()) { int dataLength = reader.ReadInt32(); int dataRead = 0; do { int read = 1024; if ((dataRead + read) > dataLength) { read -= (int)((dataRead + read) - dataLength); } var data = reader.ReadBytes(read); decompressedDataStream.Write(data, 0, data.Length); dataRead += read; } while (dataRead < dataLength); decompressedDataStream.Position = 0; #if NaCl || SILVERLIGHT using (var zip = new GZipInputStream(decompressedDataStream)) using (var dataStream = new MemoryStream()) { var buffer = new byte[4096]; int read = 0; do { read = zip.Read(buffer, 0, buffer.Length); dataStream.Write(buffer, 0, buffer.Length); } while (read > 0); Mipmaps = new Mipmap[1]; Mipmaps[0] = new Mipmap(dataStream.GetBuffer(), Size.Width, Size.Height, 1, 4); if (flip) { Mipmaps[0].FlipVertical(); } } #else using (var decompressedStream = new GZipStream(decompressedDataStream, CompressionMode.Decompress)) using (var dataStream = new MemoryStream()) { decompressedStream.CopyTo(dataStream); Mipmaps = new Mipmap[1]; Mipmaps[0] = new Mipmap(dataStream.ToArray(), Size.Width, Size.Height, 1, 4); if (flip) { Mipmaps[0].FlipVertical(); } } #endif } } } catch (Exception e) { FailedToLoad = true; Loader.AddLoadableException(e); if (loadedCallback != null) { loadedCallback(this, false); } return; } Loaded = true; Loader.AddLoadable(this); if (loadedCallback != null) { loadedCallback(this, true); } }
public ImageMetro(Stream stream, bool flip, Loader.LoadedCallbackMethod loadedCallback) { Loader.AddLoadable(this); init(stream, flip, loadedCallback); }