public void SizeChanged() { var rect = SpriteGroup.GetVisibilityRectangleForFrameGroup(); if (rect.Width == Width && rect.Height == Height) { return; } Width = rect.Width; Height = rect.Height; _spriteTexture?.Dispose(); _spriteTexture = _drawing.CreateSpriteTexture(Width, Height); if (TextureId == IntPtr.Zero) { TextureId = _textureBinder.BindTexture(_spriteTexture); } else { _textureBinder.RebindTexture(TextureId, _spriteTexture); } Draw(0, 0); }
public static IntPtr BindTexture( this ITextureBinder textureBinder, ISpriteTexture spriteTexture) { var realSpriteTexture = (MonoSpriteDrawing.CSpriteTexture)spriteTexture; return(textureBinder.BindTexture(realSpriteTexture.Texture)); }
public void SizeChanged() { var newWidth = Math.Max(1, Math.Max(Sprite.Left, Sprite.Right) - Math.Min(Sprite.Left, Sprite.Right)); var newHeight = Math.Max(1, Math.Max(Sprite.Top, Sprite.Bottom) - Math.Max(1, Math.Min(Sprite.Top, Sprite.Bottom))); if (newWidth == Width && newHeight == Height) { return; } if (TextureId != IntPtr.Zero) { _textureBinder.UnbindTexture(TextureId); } _spriteTexture?.Dispose(); Width = newWidth; Height = newHeight; _sequence.SpriteGroups[0][0].Right = Width; _sequence.SpriteGroups[0][0].Bottom = Height; _spriteTexture = _drawing.CreateSpriteTexture(Width, Height); TextureId = _textureBinder.BindTexture(_spriteTexture); Draw(0, 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(); }