public void AddSprite(Sprite sprite) { // If the batch is full, draw it, empty and start again. if (sprite.VertexPositions.Length + _batchSize > MaxVertexNumber) { Draw(); } // Add the current sprite vertices to the batch. for (int i = 0; i < sprite.VertexPositions.Length; i++) { _vertexPositions[_batchSize + i] = sprite.VertexPositions[i]; _vertexColors[_batchSize + i] = sprite.VertexColors[i]; _vertexUVs[_batchSize + i] = sprite.VertexUVs[i]; } _batchSize += sprite.VertexPositions.Length; }
public CharacterSprite CreateSprite(char c) { CharacterData charData = _characterData[c]; Sprite sprite = new Sprite(); sprite.Texture = _texture; //Setup UVs Point topLeft = new Point((float) charData.X/(float) _texture.Width, (float) charData.Y/(float) _texture.Height); Point bottomRight = new Point(topLeft.X + ((float) charData.Width/(float) _texture.Width), topLeft.Y + ((float) charData.Height/(float) _texture.Height)); sprite.SetUVs(topLeft, bottomRight); sprite.SetWidth(charData.Width); sprite.SetHeight(charData.Height); sprite.SetColor(new Color(1, 1, 1, 1)); return new CharacterSprite(sprite, charData); }