/// <summary> /// Called internally by the serializer when the buffer content is to be written as an external file /// </summary> /// <param name="writer">The satellite asset writer</param> /// <param name="satelliteUri">A local satellite URI</param> internal void _WriteToSatellite(IO.WriteContext writer, string satelliteUri) { this._uri = satelliteUri; this._byteLength = _Content.Length; writer.WriteAllBytesToEnd(satelliteUri, new ArraySegment <byte>(_Content.GetPaddedContent())); }
internal void _PrepareBuffersForSatelliteWriting(IO.WriteContext context, string baseName) { // setup all buffers to be written as satellite files for (int i = 0; i < this._buffers.Count; ++i) { var buffer = this._buffers[i]; var bname = this._buffers.Count != 1 ? $"{baseName}_{i}.bin" : $"{baseName}.bin"; buffer._WriteToSatellite(context, bname); } }
/// <summary> /// Called internally by the serializer when the buffer content is to be written as an external file /// </summary> /// <param name="writer">The satellite asset writer</param> /// <param name="satelliteUri">A local satellite URI</param> internal void _WriteToSatellite(IO.WriteContext writer, string satelliteUri) { writer.WriteAllBytesToEnd(satelliteUri, new ArraySegment <byte>(_Content.GetPaddedContent())); Uri uri = new Uri(satelliteUri, UriKind.Relative); this._uri = uri.ToString() /*Uri.EscapeUriString(satelliteUri)*/; this._byteLength = _Content.Length; }
/// <summary> /// Called internally by the serializer when the image content is to be written as an external file /// </summary> /// <param name="writer">The satellite asset writer</param> /// <param name="satelliteUri">A local satellite URI</param> internal void _WriteToSatellite(IO.WriteContext writer, string satelliteUri) { if (_SatelliteImageContent == null) { _WriteAsBufferView(); return; } if (_SatelliteImageContent._IsPngImage()) { _mimeType = null; _uri = satelliteUri += ".png"; writer.WriteAllBytesToEnd(_uri, _SatelliteImageContent.Slice(0)); return; } if (_SatelliteImageContent._IsJpgImage()) { _mimeType = null; _uri = satelliteUri += ".jpg"; writer.WriteAllBytesToEnd(_uri, _SatelliteImageContent.Slice(0)); return; } if (_SatelliteImageContent._IsDdsImage()) { _mimeType = null; _uri = satelliteUri += ".dds"; writer.WriteAllBytesToEnd(_uri, _SatelliteImageContent.Slice(0)); return; } if (_SatelliteImageContent._IsWebpImage()) { _mimeType = null; _uri = satelliteUri += ".webp"; writer.WriteAllBytesToEnd(_uri, _SatelliteImageContent.Slice(0)); return; } throw new NotImplementedException(); }
/// <summary> /// Called internally by the serializer when the image content is to be written as an external file /// </summary> /// <param name="writer">The satellite asset writer</param> /// <param name="satelliteUri">A local satellite URI</param> internal void _WriteToSatellite(IO.WriteContext writer, string satelliteUri) { if (_SatelliteImageContent == null) { _WriteAsBufferView(); return; } _mimeType = null; var imimg = new Memory.InMemoryImage(_SatelliteImageContent); if (!imimg.IsValid) { throw new InvalidOperationException(); } _uri = System.IO.Path.ChangeExtension(satelliteUri, imimg.FileExtension); writer.WriteAllBytesToEnd(_uri, imimg.GetBuffer()); }
internal void _PrepareImagesForWriting(IO.WriteContext context, string baseName, ResourceWriteMode rmode) { if (context.ImageWriting != ResourceWriteMode.Default) { rmode = context.ImageWriting; } // setup all images to be written to the appropiate location. for (int i = 0; i < this._images.Count; ++i) { var image = this._images[i]; if (rmode != ResourceWriteMode.SatelliteFile) { image._WriteToInternal(); } else { var iname = this._images.Count != 1 ? $"{baseName}_{i}" : $"{baseName}"; image._WriteToSatellite(context, iname); } } }