Esempio n. 1
0
 internal void DrawSprite(sprite sprite)
 {
     Gl.glBegin(Gl.GL_TRIANGLES);
     {
         for (int i = 0; i < sprite.VertexAmount; i++)
         {
             Gl.glBindTexture(Gl.GL_TEXTURE_2D, sprite.Texture.Id);
             DrawImmediateModeVertex(
                 sprite.VertexPositions[i],
                 sprite.VertexColors[i],
                 sprite.VertexUVs[i]);
         }
     }
     Gl.glEnd();
 }
Esempio n. 2
0
        public void AddSprite(sprite sprite)
        {
            if (sprite.VertexPositions.Length + _batchSize > MaxVertexNumber)
            {
                Draw();
            }

            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;
        }
Esempio n. 3
0
        public CharacterSprite CreateSprite(char c)
        {
            CharacterData charData = _characterData[c];
            sprite sprite = new sprite();
            sprite.Texture = _texture;
            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);
        }
Esempio n. 4
0
 public CharacterSprite(sprite sprite, CharacterData data)
 {
     Data = data;
     Sprite = sprite;
 }