public ResponsiveImageSequenceWidget(ImageSequence initialSequence) { HAnchor = HAnchor.Stretch; ImageSequence = initialSequence; if (ImageSequence != null) { ImageSequence.Invalidated += ImageChanged; } animation.DrawTarget = this; animation.Update += (s, updateEvent) => { var currentImageIndex = ImageSequence.GetImageIndexByTime(currentTime); currentTime += updateEvent.SecondsPassed; while (ImageSequence.Time > 0 && currentTime > ImageSequence.Time) { currentTime -= ImageSequence.Time; } var newImageIndex = ImageSequence.GetImageIndexByTime(currentTime); updateEvent.ShouldDraw = currentImageIndex != newImageIndex; }; RunAnimation = true; }
public ResponsiveImageSequenceWidget(ImageSequence initialSequence) { HAnchor = HAnchor.Stretch; ImageSequence = initialSequence; MaximumSize = new Vector2(initialSequence.Width * GuiWidget.DeviceScale, initialSequence.Height * GuiWidget.DeviceScale); if (ImageSequence != null) { ImageSequence.Invalidated += ImageChanged; } animation.DrawTarget = this; animation.Update += (s, updateEvent) => { var currentImageIndex = ImageSequence.GetImageIndexByTime(currentTime); currentTime += updateEvent.SecondsPassed; while (ImageSequence.Time > 0 && currentTime > ImageSequence.Time) { currentTime -= ImageSequence.Time; } var newImageIndex = ImageSequence.GetImageIndexByTime(currentTime); updateEvent.ShouldDraw = currentImageIndex != newImageIndex; }; AnimationRunning = true; }
public ImageSequenceWidget(int width, int height) { LocalBounds = new RectangleDouble(0, 0, width, height); animation.DrawTarget = this; animation.Update += (s, updateEvent) => { var currentImageIndex = ImageSequence.GetImageIndexByTime(currentTime); currentTime += updateEvent.SecondsPassed; while (ImageSequence.Time > 0 && currentTime > ImageSequence.Time) { currentTime -= ImageSequence.Time; } var newImageIndex = ImageSequence.GetImageIndexByTime(currentTime); updateEvent.ShouldDraw = currentImageIndex != newImageIndex; }; RunAnimation = true; }