예제 #1
0
        protected override void OnGotContext(RenderContext context)
        {
            base.OnGotContext(context);

            var settings     = Program.Settings;
            var theaterDays  = Game.AsTheaterDays();
            var debugOverlay = theaterDays.FindSingleElement <DebugOverlay>();

            var gamingArea = theaterDays.FindSingleElement <GamingArea>();

            if (gamingArea == null)
            {
                throw new InvalidOperationException();
            }

            if (settings.Images.Notes == null || settings.Images.Notes.Length == 0)
            {
                if (debugOverlay != null)
                {
                    debugOverlay.AddLine("WARNING: default notes image strip is not specified.");
                }
            }
            else
            {
                _noteImages = new D2DImageStrip[settings.Images.Notes.Length];

                for (var i = 0; i < settings.Images.Notes.Length; ++i)
                {
                    var notesImageEntry = settings.Images.Notes[i];
                    if (notesImageEntry == null)
                    {
                        continue;
                    }

                    if (notesImageEntry.File == null || !File.Exists(notesImageEntry.File))
                    {
                        if (i == 0)
                        {
                            if (debugOverlay != null)
                            {
                                debugOverlay.AddLine($"WARNING: default notes image strip <{notesImageEntry.File ?? string.Empty}> is not found.");
                            }
                        }
                        else
                        {
                            if (debugOverlay != null)
                            {
                                debugOverlay.AddLine($"WARNING: notes image strip <{notesImageEntry.File ?? string.Empty}> is not found, falling back to default.");
                            }
                        }
                        continue;
                    }

                    var imageStrip = Direct2DHelper.LoadImageStrip(context, notesImageEntry.File, notesImageEntry.Count, notesImageEntry.Orientation);
                    _noteImages[i] = imageStrip;
                }
            }

            _tapPointImage = Direct2DHelper.LoadBitmap(context, settings.Images.TapPoint.FileName);
        }
예제 #2
0
 protected override void OnGotContext(RenderContext context)
 {
     base.OnGotContext(context);
     if (_filePath != null)
     {
         _bitmap = Direct2DHelper.LoadBitmap(context, _filePath);
     }
 }
예제 #3
0
        protected override void OnGotContext(RenderContext context)
        {
            base.OnGotContext(context);

            var settings = Program.Settings;

            _hitRankImages = Direct2DHelper.LoadImageStrip(context, settings.Images.HitRank.File, settings.Images.HitRank.Count, settings.Images.HitRank.Orientation);
        }
예제 #4
0
 public ProcessBar(DeviceContext DC) : base(DC)
 {
     using (WICBitmap sc = Direct2DHelper.LoadBitmap("assets\\process.bmp"))
         using (D2DBitmap sc_cv = D2DBitmap.FromWicBitmap(HostDC, sc))
         {
             br = new BitmapBrush(HostDC, sc_cv);
         }
     br.ExtendModeX = ExtendMode.Mirror;
 }
예제 #5
0
        public void ReLoad(string path)
        {
            var old = buffer;

            buffer    = Direct2DHelper.LoadBitmap(path);
            PixelSize = new Size(buffer.Size.Width, buffer.Size.Height);
            old.Dispose();
            Updated = true;
        }
예제 #6
0
        protected override void OnGotContext(RenderContext context)
        {
            base.OnGotContext(context);

            var settings = Program.Settings;

            _auraImage     = Direct2DHelper.LoadBitmap(context, settings.Images.SpecialNoteAura.FileName);
            _socketImage   = Direct2DHelper.LoadBitmap(context, settings.Images.SpecialNoteSocket.FileName);
            _tapPointImage = Direct2DHelper.LoadBitmap(context, settings.Images.TapPoint.FileName);
        }
예제 #7
0
        protected override void OnGotContext(RenderContext context)
        {
            base.OnGotContext(context);

            try {
                _characterImages = Direct2DHelper.LoadImageStrip2D(context, Resources.CharacterIcons, CharacterWidth, CharacterHeight, TotalCharacterCount, ArrayCount, CharacterImagesOrientation);
            } catch (Exception ex) {
                var debugOverlay = Game.AsTheaterDays().FindSingleElement <DebugOverlay>();
                if (debugOverlay != null)
                {
                    debugOverlay.AddLine(ex.StackTrace);
                    debugOverlay.AddLine($"Failed to load easter egg: {ex.Message}");
                }
            }
        }
예제 #8
0
        protected override void OnGotContext(RenderContext context)
        {
            base.OnGotContext(context);

            var settings = Program.Settings;

            _textImage = Direct2DHelper.LoadBitmap(context, settings.Images.Combo.Text.FileName);

            var clientSize = context.ClientSize;
            var layout     = settings.UI.Combo.Text.Layout;

            var x = layout.X.ToActualValue(clientSize.Width);
            var y = layout.Y.ToActualValue(clientSize.Height);

            Location = new Point((int)x, (int)y);
        }
예제 #9
0
        protected override void OnGotContext(RenderContext context)
        {
            base.OnGotContext(context);

            var settings = Program.Settings;

            var numbersSettings = settings.Images.Combo.Numbers;

            _numberImages = Direct2DHelper.LoadImageStrip(context, numbersSettings.File, numbersSettings.Count, numbersSettings.Orientation);

            var clientSize = context.ClientSize;
            var layout     = settings.UI.Combo.Numbers.Layout;

            var x = layout.X.IsPercentage ? layout.X.Value * clientSize.Width : layout.X.Value;
            var y = layout.Y.IsPercentage ? layout.Y.Value * clientSize.Height : layout.Y.Value;

            Location = new Point((int)x, (int)y);
        }
예제 #10
0
 public BitmapImage(string path)
 {
     buffer    = Direct2DHelper.LoadBitmap(path);
     PixelSize = new Size(buffer.Size.Width, buffer.Size.Height);
 }
예제 #11
0
        protected override void OnGotContext(RenderContext context)
        {
            base.OnGotContext(context);

            var settings = Program.Settings;

            var avatarCount  = settings.Images.Avatars.Length;
            var avatarImages = new D2DBitmap[avatarCount];

            for (var i = 0; i < avatarCount; ++i)
            {
                try {
                    var image = Direct2DHelper.LoadBitmap(context, settings.Images.Avatars[i].FileName);
                    avatarImages[i] = image;
                } catch (Exception ex) {
                    Debug.Print(ex.Message);
                }
            }

            var clientSize = context.ClientSize;
            var layout     = settings.UI.Avatars.Layout;
            var x          = layout.X.IsPercentage ? layout.X.Value * clientSize.Width : layout.X.Value;
            var y          = layout.Y.IsPercentage ? layout.Y.Value * clientSize.Height : layout.Y.Value;
            var w          = layout.Width.IsPercentage ? layout.Width.Value * clientSize.Width : layout.Width.Value;
            var h          = layout.Height.IsPercentage ? layout.Height.Value * clientSize.Height : layout.Height.Value;

            var   rects = new RectangleF[avatarCount];
            float radius;

            if (w >= h)
            {
                radius = h / 2;
                for (var i = 0; i < avatarCount; ++i)
                {
                    var cx   = (w - radius * 2) / (avatarCount - 1) * i;
                    var rect = new RectangleF(x + cx, y, radius * 2, radius * 2);
                    rects[i] = rect;
                }
            }
            else
            {
                radius = w / 2;
                for (var i = 0; i < avatarCount; ++i)
                {
                    var cy   = (h - radius * 2) / (avatarCount - 1) * i;
                    var rect = new RectangleF(x, y + cy, radius * 2, radius * 2);
                    rects[i] = rect;
                }
            }

            _avatarImages     = avatarImages;
            _avatarRectangles = rects;

            var gamingArea = Game.AsTheaterDays().FindSingleElement <GamingArea>();

            if (gamingArea == null)
            {
                throw new InvalidOperationException();
            }

            var scalingResults = gamingArea.ScaleResults;

            _borderPen = new D2DPen(context, Color.White, scalingResults.AvatarBorder.Width);
        }