Пример #1
0
 public static void DrawRectangle(this ISpriteDrawing drawing, float x, float y, float width, float height, ColorF color, float thickness = 1.0f)
 {
     drawing.FillRectangle(x, y, width, thickness, color);
     drawing.FillRectangle(x, y + height - 1, width - 1, thickness, color);
     drawing.FillRectangle(x, y, thickness, height, color);
     drawing.FillRectangle(x + width - 1, y, thickness, height, color);
 }
Пример #2
0
        public static void AssertDraw(this ISpriteDrawing drawing, int callIndex, Action <SpriteDrawingContext> assertion)
        {
            var call = drawing.ReceivedCalls().Skip(callIndex).FirstOrDefault();

            Assert.NotNull(call);
            assertion(call.GetArguments()[0] as SpriteDrawingContext);
        }
 private static void AssertNoCall(ISpriteDrawing drawing)
 {
     if (drawing.ReceivedCalls().Any())
     {
         throw new Xunit.Sdk.XunitException("Expected no draws but at least once has been performed.");
     }
 }
Пример #4
0
 public SequenceRenderer(Sequence sequence, ISpriteDrawing drawing, ISpriteTexture surface)
 {
     this.drawing          = drawing;
     this.surface          = surface;
     Sequence              = sequence;
     DebugSequenceRenderer = new DefaultDebugSequenceRenderer();
 }
Пример #5
0
        public Kh2MessageRenderer(
            ISpriteDrawing drawing,
            RenderingMessageContext context)
        {
            _drawing    = drawing;
            _msgContext = context;

            _fontSpacing     = context.FontSpacing;
            _iconSpacing     = context.IconSpacing;
            _imageFont       = context.Font;
            _imageFont2      = context.Font2;
            _imageIcon       = context.Icon;
            _charPerRow      = context.Font?.Size.Width / context.FontWidth ?? 1;
            _iconPerRow      = context.Icon?.Size.Width / IconWidth ?? 1;
            _tableHeight     = context.TableHeight;
            _charTableHeight = context.TableHeight / context.FontHeight * context.FontHeight;
            _encode          = context.Encoder;

            if (_imageFont != null)
            {
                InitializeSurface(ref _spriteFont, _imageFont);
            }
            if (_imageFont2 != null)
            {
                InitializeSurface(ref _spriteFont2, _imageFont2);
            }
            if (_imageIcon != null)
            {
                InitializeSurface(ref _spriteIcon, _imageIcon);
            }
        }
        private static void AssertDraw(ISpriteDrawing drawing, Action <SpriteDrawingContext> assertion)
        {
            var call = drawing.ReceivedCalls().FirstOrDefault();

            Assert.NotNull(call);
            assertion(call.GetArguments()[0] as SpriteDrawingContext);
        }
 private static void AssertAtLeastOneCall(ISpriteDrawing drawing)
 {
     if (!drawing.ReceivedCalls().Any())
     {
         throw new Xunit.Sdk.XunitException("Expected at least draw but no draw has been performed.");
     }
 }
Пример #8
0
 public static void FillRectangle(this ISpriteDrawing drawing, float x, float y, float width, float height, ColorF color)
 {
     drawing.AppendSprite(new SpriteDrawingContext()
                          .Source(0, 0, 1, 1)
                          .Position(x, y)
                          .DestinationSize(width, height)
                          .Color(color));
 }
Пример #9
0
        public static void AssertCallCount(this ISpriteDrawing drawing, int count)
        {
            var actual = drawing.ReceivedCalls().Count();

            if (actual != count)
            {
                throw new Xunit.Sdk.XunitException($"Expected {count} draw counts, but got {actual}.");
            }
        }
Пример #10
0
        private void PostDraw(ISpriteDrawing drawing)
        {
            DrawCenter(drawing, 0.333f);

            //var backgroundColorInverse = new ColorF(
            //    1f - _settings.EditorBackground.R,
            //    1f - _settings.EditorBackground.G,
            //    1f,
            //    1f);
            //drawing.FillRectangle(50, 0, 100, 100, backgroundColorInverse);
            //drawing.Flush();
        }
Пример #11
0
        public static void SetProjection(this ISpriteDrawing spriteDrawing,
                                         float width, float height, float internalWidth, float internalHeight, float ratio)
        {
            var heightRatio = internalHeight / height;

            width  *= heightRatio;
            height *= heightRatio;
            width  *= ratio;

            var left = (internalWidth - width) / 2;

            spriteDrawing.SetViewport(left, width + left, 0, height);
        }
Пример #12
0
 public SpriteGroupEditDialog(
     Sequence sequence,
     List <SpriteGroupModel> spriteGroupModels,
     int selectedSpriteGroupModel,
     ISpriteDrawing spriteDrawing,
     ISpriteTexture atlasTexture,
     ITextureBinder textureBinder,
     IEditorSettings settings)
 {
     _sequence                 = sequence;
     _spriteGroupModels        = spriteGroupModels;
     _selectedSpriteGroupModel = selectedSpriteGroupModel;
     _spriteDrawing            = spriteDrawing;
     _atlasTexture             = atlasTexture;
     _textureBinder            = textureBinder;
     _settings                 = settings;
 }
Пример #13
0
        public SpriteModel(
            Sequence.Sprite sprite,
            ISpriteDrawing drawing,
            ISpriteTexture atlasTexture,
            ITextureBinder textureBinder,
            IEditorSettings settings)
        {
            Sprite = sprite;

            _drawing       = drawing;
            _sequence      = MockSequence();
            _renderer      = new SequenceRenderer(_sequence, drawing, atlasTexture);
            _textureBinder = textureBinder;
            _settings      = settings;
            _settings.OnChangeBackground += (o, e) => Draw(0, 0);

            SizeChanged();
        }
Пример #14
0
        private void DrawCenter(ISpriteDrawing drawing, float alpha)
        {
            if (!_isPivotVisible)
            {
                return;
            }

            const float Infinite = 65535f;
            var         origin   = GetOrigin(SpriteGroupModel);
            var         backgroundColorInverse = new ColorF(
                1f - _settings.EditorBackground.R,
                1f - _settings.EditorBackground.G,
                1f - _settings.EditorBackground.B,
                alpha);

            drawing.FillRectangle(origin.X, 0, 1, Infinite, backgroundColorInverse);
            drawing.FillRectangle(0, origin.Y, Infinite, 1, backgroundColorInverse);
            drawing.Flush();
        }
Пример #15
0
        public SpriteEditDialog(
            List <SpriteModel> spriteModels,
            int selectedSpriteModel,
            ISpriteDrawing spriteDrawing,
            ISpriteTexture atlasTexture,
            ITextureBinder textureBinder,
            IEditorSettings settings)
        {
            _spriteModels                 = spriteModels;
            _selectedSpriteModel          = selectedSpriteModel;
            _spriteDrawing                = spriteDrawing;
            _atlasTexture                 = atlasTexture;
            _textureBinder                = textureBinder;
            _settings                     = settings;
            _settings.OnChangeBackground += (o, e) => DrawCropAtlasTexture();

            _cropAtlasTexture   = _spriteDrawing.CreateSpriteTexture(atlasTexture.Width, atlasTexture.Height);
            _cropAtlasTextureId = _textureBinder.BindTexture(_cropAtlasTexture);
            DrawCropAtlasTexture();
        }
Пример #16
0
 private void PreDraw(ISpriteDrawing drawing)
 {
     DrawCenter(drawing, 1.0f);
 }
Пример #17
0
 public static void AssertDraw(this ISpriteDrawing drawing, Action <SpriteDrawingContext> assertion) =>
 drawing.AssertDraw(0, assertion);