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); }
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."); } }
public SequenceRenderer(Sequence sequence, ISpriteDrawing drawing, ISpriteTexture surface) { this.drawing = drawing; this.surface = surface; Sequence = sequence; DebugSequenceRenderer = new DefaultDebugSequenceRenderer(); }
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."); } }
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)); }
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}."); } }
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(); }
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); }
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; }
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(); }
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(); }
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(); }
private void PreDraw(ISpriteDrawing drawing) { DrawCenter(drawing, 1.0f); }
public static void AssertDraw(this ISpriteDrawing drawing, Action <SpriteDrawingContext> assertion) => drawing.AssertDraw(0, assertion);