Esempio n. 1
0
        public void InitSpriteBatch(int maxSpriteCount, GraphicsContext graphics)
        {
            batch    = new Sprite2DBatch(graphics, maxSpriteCount);
            material = new Sprite2DMaterial(new Texture2D("/Application/res/data/2Dtex/unifiedTexture.png", true));
            material.Texture.SetFilter(TextureFilterMode.Linear, TextureFilterMode.Linear,
                                       TextureFilterMode.Nearest);

            sprites     = new Sprite2D[maxSpriteCount];
            spriteCount = 0;
        }
Esempio n. 2
0
        internal void UpdateIndexData()
        {
            if (!needUpdateIndexData)
            {
                return;
            }
            needUpdateIndexData = false;

            int indexID = 0;
            Sprite2DMaterial material = null;
            Sprite2D         draw     = null;

            drawList  = null;
            drawCount = 0;
            for (int i = 0; i < sortedCount; i++)
            {
                var head   = sortedList[i];
                var sprite = head;
                if (material != sprite.Material)
                {
                    material = sprite.Material;
                    if (draw == null)
                    {
                        drawList = sprite;
                    }
                    if (draw != null)
                    {
                        draw.drawNext = sprite;
                    }
                    sprite.drawNext = null;
                    draw            = sprite;
                    drawCount++;
                }
                do
                {
                    if (sprite.indexID != indexID)
                    {
                        sprite.indexID         = indexID;
                        indexData[indexID + 0] = (ushort)(sprite.vertexID + 0);
                        indexData[indexID + 1] = (ushort)(sprite.vertexID + 1);
                        indexData[indexID + 2] = (ushort)(sprite.vertexID + 2);
                        indexData[indexID + 3] = (ushort)(sprite.vertexID + 2);
                        indexData[indexID + 4] = (ushort)(sprite.vertexID + 1);
                        indexData[indexID + 5] = (ushort)(sprite.vertexID + 3);
                    }
                    indexID += 6;
                    sprite   = sprite.sortNext;
                } while (sprite != head);
            }
            vertexBuffer.SetIndices(indexData, 0, 0, indexCount);
        }
Esempio n. 3
0
        public Sprite2D(Sprite2DBatch batch, Sprite2DMaterial material = null, int zIndex = 0)
        {
            this.batch    = batch;
            this.material = material ?? Sprite2DMaterial.DefaultMaterial;
            this.zIndex   = zIndex;
            vertexID      = -1;
            indexID       = -1;
            UpdateSortKey(false);
            batch.AddSprite(this);

            Center = new Vector2(0.5f);
            UVSize = new Vector2(1.0f);
            Color  = new Rgba(255, 255, 255, 255);

            updateFlag = false;
        }
Esempio n. 4
0
	public Sprite2D( Sprite2DBatch batch, Sprite2DMaterial material = null, int zIndex = 0 )
	{
		this.batch = batch ;
		this.material = material ?? Sprite2DMaterial.DefaultMaterial ;
		this.zIndex = zIndex ;
		vertexID = -1 ;
		indexID = -1 ;
		UpdateSortKey( false ) ;
		batch.AddSprite( this ) ;

		Center = new Vector2( 0.5f ) ;
		UVSize = new Vector2( 1.0f ) ;
		Color = new Rgba( 255, 255, 255, 255 ) ;
			
		updateFlag = false;
	}
Esempio n. 5
0
        public void InitSpriteBatch( int maxSpriteCount , GraphicsContext graphics )
        {
            batch = new Sprite2DBatch( graphics, maxSpriteCount ) ;
            material = new Sprite2DMaterial( new Texture2D( "/Application/res/data/2Dtex/unifiedTexture.png", true ) ) ;
            material.Texture.SetFilter( TextureFilterMode.Linear, TextureFilterMode.Linear,
                                        TextureFilterMode.Nearest ) ;

            sprites = new Sprite2D[ maxSpriteCount ] ;
            spriteCount = 0 ;
        }