public AnimatedTexture GetAnimatedTexture() { var decoder = new MG.GIF.Decoder(Request.downloadHandler.data); var img = decoder.NextImage(); var anim = new AnimatedTexture(URL); while (img != null) { anim.Add(img.CreateTexture(), img.Delay / 1000.0f); img = decoder.NextImage(); } return(anim); }
static void Main(string[] args) { var dir = @"..\..\..\..\Assets\StreamingAssets"; var filenames = Directory.GetFiles(dir, "*.gif"); var filedata = (from file in filenames select File.ReadAllBytes(file)).ToArray(); int count = 0; long sum = 0; long sumSquares = 0; var decoder = new MG.GIF.Decoder(); while (true) { var sw = new Stopwatch(); sw.Start(); foreach (var file in filedata) { decoder.Load(file); var img = decoder.NextImage(); while (img != null) { img = decoder.NextImage(); } } sw.Stop(); count++; sum += sw.ElapsedMilliseconds; sumSquares += sw.ElapsedMilliseconds * sw.ElapsedMilliseconds; var average = (float)sum / count; var variance = sumSquares / count - average * average; Console.WriteLine($"[{count:00}]: av {average:0.0}ms, sd {Math.Sqrt( variance ):0.0} - {sw.ElapsedMilliseconds}ms"); break; } }