コード例 #1
0
        public void DrawQuad(Texture2D texture, ref SpriteQuad quad)
        {
            if (texture != _currentTexture)
            {
                BeginNewMesh(texture);
            }

            if (drawRect != null)
            {
                if (!drawRect.Value.Intersects(quad.GetBounds()))
                {
                    return;
                }
            }

            _currentMesh.DrawQuad(ref quad);
        }
コード例 #2
0
        public void DrawQuad(ref SpriteQuad quad)
        {
            // performance inlining
            if (_vertexNum + 4 >= _vertexCount || _indexNum + 6 >= _indexCount)
            {
                EnsureSize(4, 6);
            }

            _vertices[_vertexNum]     = quad.leftTop.position;
            _vertices[_vertexNum + 1] = quad.rightTop.position;
            _vertices[_vertexNum + 2] = quad.leftBottom.position;
            _vertices[_vertexNum + 3] = quad.rightBottom.position;

            quad.leftTop.color.GetColor(out _colors[_vertexNum + 0]);
            quad.rightTop.color.GetColor(out _colors[_vertexNum + 1]);
            quad.leftBottom.color.GetColor(out _colors[_vertexNum + 2]);
            quad.rightBottom.color.GetColor(out _colors[_vertexNum + 3]);

            quad.leftTop.color.GetTint(out _uv2[_vertexNum + 0]);
            quad.rightTop.color.GetTint(out _uv2[_vertexNum + 1]);
            quad.leftBottom.color.GetTint(out _uv2[_vertexNum + 2]);
            quad.rightBottom.color.GetTint(out _uv2[_vertexNum + 3]);

            _uv[_vertexNum]     = quad.leftTop.texCoord;
            _uv[_vertexNum + 1] = quad.rightTop.texCoord;
            _uv[_vertexNum + 2] = quad.leftBottom.texCoord;
            _uv[_vertexNum + 3] = quad.rightBottom.texCoord;

            _indices[_indexNum]     = _vertexNum;
            _indices[_indexNum + 1] = (_vertexNum + 1);
            _indices[_indexNum + 2] = (_vertexNum + 2);
            _indices[_indexNum + 3] = (_vertexNum + 1);
            _indices[_indexNum + 4] = (_vertexNum + 2);
            _indices[_indexNum + 5] = (_vertexNum + 3);

            _vertexNum += 4;
            _indexNum  += 6;
        }
コード例 #3
0
 /// <summary>
 /// Adds quad to collection.
 /// </summary>
 public void Add(SpriteQuad spriteQuad)
 {
     EnsureSize(quadsCount + 1);
     quads[quadsCount] = spriteQuad;
     quadsCount       += 1;
 }