Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the Sprite class.
        /// </summary>
        /// <param name="spriteRenderer">The owning <see cref="ISpriteRenderer"/>.</param>
        /// <param name="primitives">The primitives.</param>
        public Sprite(ISpriteRenderer spriteRenderer, params Primitive[] primitives)
        {
            if (primitives == null || primitives.Length == 0)
            {
                throw new ArgumentNullException("primitives");
            }

            this.SpriteRenderer = spriteRenderer;
            this.ViewportSize   = spriteRenderer.Viewport.Size;
            this.backend        = spriteRenderer.RenderManager.MiyagiSystem.Backend;
            this.primitives     = primitives;

            foreach (var pri in primitives)
            {
                this.TriangleCount += pri.TriangleCount;
                this.VertexCount   += pri.VertexCount;
            }

            spriteRenderer.AddSprite(this);
            this.textureHandle = RenderManager.TransparentTextureHandle;
        }