Beispiel #1
0
        public void LoadStoryboard(string dir, OsuFile osu)
        {
            ClearLayer();

            List <Element> backEle = null;
            List <Element> foreEle = null;
            Stopwatch      sw      = new Stopwatch();

            Console.WriteLine(@"Parsing..");
            sw.Start();
            string osbFile = Path.Combine(dir, osu.OsbFileName);

            if (osu.Events.ElementGroup != null)
            {
                var osb = osu.Events.ElementGroup;

                sw.Restart();
                osb.Expand();
                Console.WriteLine($@"Osu's osb expanded done in {sw.ElapsedMilliseconds} ms");

                FillLayerList(ref backEle, ref foreEle, osb);
            }

            if (File.Exists(osbFile))
            {
                sw.Restart();
                var osb = ElementGroup.Parse(osbFile);
                Console.WriteLine($@"Parse osb done in {sw.ElapsedMilliseconds} ms");

                sw.Restart();
                osb.Expand();
                Console.WriteLine($@"Osb expanded done in {sw.ElapsedMilliseconds} ms");

                FillLayerList(ref backEle, ref foreEle, osb);
            }

            sw.Stop();
            Directory = dir;
            if (backEle == null && foreEle == null)
            {
                return;
            }
            StoryboardTiming.Reset();
            if (foreEle != null)
            {
                backEle?.AddRange(foreEle);
            }
            HwndRenderBase.AddLayers(new CustomLayer[]
            {
                new StoryboardLayer(HwndRenderBase.RenderTarget, backEle ?? foreEle, StoryboardTiming),
                new FpsLayer(HwndRenderBase.RenderTarget),
            });
            StoryboardTiming.Start();
        }
Beispiel #2
0
 private void ClearLayer()
 {
     HwndRenderBase.RemoveAllLayers();
 }
Beispiel #3
0
        //public StoryboardProvider(Window window)
        //{
        //    HwndRenderBase = new HwndRenderBase(window);
        //}

        public StoryboardProvider(FrameworkElement window)
        {
            HwndRenderBase = new HwndRenderBase(window);
        }
Beispiel #4
0
 public void Dispose()
 {
     HwndRenderBase.Dispose();
 }
Beispiel #5
0
 public StoryboardProvider(Control control)
 {
     HwndRenderBase = new HwndRenderBase(control);
 }
Beispiel #6
0
 public Manager(Control control)
 {
     HwndRenderBase = new HwndRenderBase(control);
 }