From 0b7a0e6ed9594a4c3fabbc2b7508a4f41830f78c Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 24 Sep 2020 21:54:19 +0200 Subject: [PATCH] Solve some arithmetic issues --- src/spritesheet.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/spritesheet.rs b/src/spritesheet.rs index 8ced576..713c9a4 100644 --- a/src/spritesheet.rs +++ b/src/spritesheet.rs @@ -2,9 +2,8 @@ use std::fs::File; use std::io::BufWriter; use std::path::PathBuf; -use anyhow::{bail, format_err, Error}; +use anyhow::{bail, Error, format_err}; use image::{DynamicImage, ImageOutputFormat, RgbImage}; - use media_time::MediaTime; use webvtt::{WebVTTCue, WebVTTFile}; @@ -150,16 +149,22 @@ impl SpritesheetManager { } pub fn end_frame(&mut self, timestamp: MediaTime) { + let prev_image = if self.current_image > 0 { + self.current_image - 1 + } else { + 0 + }; + self.metadata.add(WebVTTCue::new( self.last_timestamp, timestamp, format!( "{}_{}.{}#xywh={},{},{},{}", self.name, - self.spritesheet_index(self.current_image - 1), + self.spritesheet_index(prev_image), self.ending(), - self.x(self.current_image - 1), - self.y(self.current_image - 1), + self.x(prev_image), + self.y(prev_image), self.sprite_width, self.sprite_height ), -- GitLab