public SpriteLease Borrow(SpriteKey key, int length, object caller) { lock (_syncRoot) { if (!_sprites.ContainsKey(key)) { _sprites[key] = new MultiSprite(key); } var entry = _sprites[key]; return(entry.Grow(length, caller)); } }
public MultiSprite(SpriteKey key, int bufferId, IEnumerable <SpriteInstanceData> sprites) { Key = key; BufferId = bufferId; if (sprites is SpriteInstanceData[] array) { Instances = array; } else { Instances = sprites.ToArray(); } // CalculateExtents(); }
public SpriteLease Borrow(SpriteKey key, int length, object caller) { if (length <= 0) { throw new ArgumentOutOfRangeException(nameof(length)); } lock (_syncRoot) { if (!_sprites.ContainsKey(key)) { _sprites[key] = new MultiSprite(key); } var entry = _sprites[key]; return(entry.Grow(length, caller)); } }
public SpriteLease Borrow(SpriteKey key, int length, object caller) { if (length <= 0) { throw new ArgumentOutOfRangeException(nameof(length)); } lock (_syncRoot) { if (!_sprites.TryGetValue(key, out var entry)) { entry = new MultiSprite(key); Resolve <IEngine>()?.RegisterRenderable(entry); _sprites[key] = entry; } return(entry.Grow(length, caller)); } }
public MultiSprite(SpriteKey key) { Key = key; }
public UiMultiSprite(SpriteKey key, int bufferId, IEnumerable <SpriteInstanceData> sprites) : base(key, bufferId, sprites) { }
public UiMultiSprite(SpriteKey key) : base(key) { }