internal APNGFrame(GraphicsDevice graphicsDevice, Frame frame) { if (frame.fcTLChunk != null) { X = (int) frame.fcTLChunk.XOffset; Y = (int) frame.fcTLChunk.YOffset; Width = (int) frame.fcTLChunk.Width; Height = (int) frame.fcTLChunk.Height; BlendOp = frame.fcTLChunk.BlendOp; DisposeOp = frame.fcTLChunk.DisposeOp; DelayTime = new TimeSpan( TimeSpan.TicksPerSecond*frame.fcTLChunk.DelayNum/frame.fcTLChunk.DelayDen); } else { X = 0; Y = 0; Width = frame.IHDRChunk.Width; Height = frame.IHDRChunk.Height; BlendOp = BlendOps.APNGBlendOpSource; DisposeOp = DisposeOps.APNGDisposeOpNone; DelayTime = TimeSpan.Zero; } // frame.GetStream() is not seekable, so we build a new MemoryStream. FrameTexture = Texture2D.FromStream( graphicsDevice, new MemoryStream(frame.GetStream().ToArray())); MultiplyAlpha(FrameTexture); }
internal APNGFrame(Game game, Frame frame) { if (frame.fcTLChunk != null) { X = (int)frame.fcTLChunk.XOffset; Y = (int)frame.fcTLChunk.YOffset; Width = (int)frame.fcTLChunk.Width; Height = (int)frame.fcTLChunk.Height; BlendOp = frame.fcTLChunk.BlendOp; DisposeOp = frame.fcTLChunk.DisposeOp; DelayTime = new TimeSpan( TimeSpan.TicksPerSecond * frame.fcTLChunk.DelayNum / frame.fcTLChunk.DelayDen); } else { X = 0; Y = 0; Width = frame.IHDRChunk.Width; Height = frame.IHDRChunk.Height; BlendOp = BlendOps.APNGBlendOpSource; DisposeOp = DisposeOps.APNGDisposeOpNone; DelayTime = TimeSpan.Zero; } // frame.GetStream() is not seekable, so we build a new MemoryStream. FrameTexture = Texture2D.FromStream( game.GraphicsDevice, new MemoryStream(frame.GetStream().ToArray())); MultiplyAlpha(FrameTexture); }
public override void ReadFromString(ref string[] nodeParams) { base.ReadFromString(ref nodeParams); m_currentBlendOp = (BlendOps)Enum.Parse(typeof(BlendOps), GetCurrentParam(ref nodeParams)); m_saturate = Convert.ToBoolean(GetCurrentParam(ref nodeParams)); SetAdditonalTitleText(string.Format(Constants.SubTitleTypeFormatStr, m_currentBlendOp)); }
public override void DrawProperties() { base.DrawProperties(); EditorGUI.BeginChangeCheck(); m_currentBlendOp = (BlendOps)EditorGUILayoutEnumPopup(BlendOpsModeStr, m_currentBlendOp); if (EditorGUI.EndChangeCheck()) { SetAdditonalTitleText(string.Format(Constants.SubTitleTypeFormatStr, m_currentBlendOp)); } m_saturate = EditorGUILayoutToggle(SaturateResultStr, m_saturate); }
public override void Draw(DrawInfo drawInfo) { base.Draw(drawInfo); EditorGUI.BeginChangeCheck(); m_currentBlendOp = (BlendOps)m_upperLeftWidget.DrawWidget(this, m_currentBlendOp); if (EditorGUI.EndChangeCheck()) { SetAdditonalTitleText(string.Format(Constants.SubTitleTypeFormatStr, m_currentBlendOp)); } }
/// <summary> /// Parses the data. /// </summary> /// <param name="ms">Memory stream of chunk data.</param> protected override void ParseData(MemoryStream ms) { sequenceNumber = Helper.ConvertEndian(ms.ReadUInt32()); width = Helper.ConvertEndian(ms.ReadUInt32()); height = Helper.ConvertEndian(ms.ReadUInt32()); xOffset = Helper.ConvertEndian(ms.ReadUInt32()); yOffset = Helper.ConvertEndian(ms.ReadUInt32()); delayNumerator = Helper.ConvertEndian(ms.ReadUInt16()); delayDenominator = Helper.ConvertEndian(ms.ReadUInt16()); disposeOp = (DisposeOps)ms.ReadByte(); blendOp = (BlendOps)ms.ReadByte(); }
protected override void ParseData(MemoryStream ms) { SequenceNumber = Helper.ConvertEndian(ms.ReadUInt32()); Width = Helper.ConvertEndian(ms.ReadUInt32()); Height = Helper.ConvertEndian(ms.ReadUInt32()); XOffset = Helper.ConvertEndian(ms.ReadUInt32()); YOffset = Helper.ConvertEndian(ms.ReadUInt32()); DelayNum = Helper.ConvertEndian(ms.ReadUInt16()); DelayDen = Helper.ConvertEndian(ms.ReadUInt16()); DisposeOp = (DisposeOps)ms.ReadByte(); BlendOp = (BlendOps)ms.ReadByte(); }
public FrameInfo(IHDRChunk header, Frame frame) { FullRect = new Rect(0, 0, header.Width, header.Height); FrameRect = new Rect(frame.fcTLChunk.XOffset, frame.fcTLChunk.YOffset, frame.fcTLChunk.Width, frame.fcTLChunk.Height); BlendOp = frame.fcTLChunk.BlendOp; DisposeOp = frame.fcTLChunk.DisposeOp; Pixels = frame.GetBitmapSource(); Pixels.Freeze(); Delay = TimeSpan.FromSeconds((double)frame.fcTLChunk.DelayNum / (frame.fcTLChunk.DelayDen == 0 ? 100 : frame.fcTLChunk.DelayDen)); }
public override void DrawProperties() { base.DrawProperties(); m_currentBlendOp = ( BlendOps )EditorGUILayoutEnumPopup(BlendOpsModeStr, m_currentBlendOp); }
public override void ReadFromString(ref string[] nodeParams) { base.ReadFromString(ref nodeParams); m_currentBlendOp = ( BlendOps )Enum.Parse(typeof(BlendOps), GetCurrentParam(ref nodeParams)); m_saturate = Convert.ToBoolean(GetCurrentParam(ref nodeParams)); }
public override void DrawProperties() { base.DrawProperties(); m_currentBlendOp = ( BlendOps )EditorGUILayoutEnumPopup(BlendOpsModeStr, m_currentBlendOp); m_saturate = EditorGUILayoutToggle(SaturateResultStr, m_saturate); }