コード例 #1
0
ファイル: SpriteManager.cs プロジェクト: mrwillbarnz/ualbion
        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));
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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));
            }
        }
コード例 #5
0
ファイル: MultiSprite.cs プロジェクト: Metibor/ualbion
 public MultiSprite(SpriteKey key)
 {
     Key = key;
 }
コード例 #6
0
 public UiMultiSprite(SpriteKey key, int bufferId, IEnumerable <SpriteInstanceData> sprites) : base(key, bufferId, sprites)
 {
 }
コード例 #7
0
 public UiMultiSprite(SpriteKey key) : base(key)
 {
 }