dfDropdown.RenderMultiple C# (CSharp) Method

RenderMultiple() public method

public RenderMultiple ( ) : dfList
return dfList
    public dfList<dfRenderData> RenderMultiple()
    {
        if( Atlas == null || Font == null )
            return null;

        if( !isVisible )
        {
            return null;
        }

        // Initialize render buffers if needed
        if( renderData == null )
        {

            renderData = dfRenderData.Obtain();
            textRenderData = dfRenderData.Obtain();

            isControlInvalidated = true;

        }

        // If control is not dirty, update the transforms on the
        // render buffers (in case control moved) and return
        // pre-rendered data
        if( !isControlInvalidated )
        {
            for( int i = 0; i < buffers.Count; i++ )
            {
                buffers[ i ].Transform = transform.localToWorldMatrix;
            }
            return buffers;
        }

        #region Prepare render buffers

        buffers.Clear();

        renderData.Clear();
        renderData.Material = Atlas.Material;
        renderData.Transform = this.transform.localToWorldMatrix;
        buffers.Add( renderData );

        textRenderData.Clear();
        textRenderData.Material = Atlas.Material;
        textRenderData.Transform = this.transform.localToWorldMatrix;
        buffers.Add( textRenderData );

        #endregion

        // Render background before anything else, since we're going to
        // want to keep track of where the background data ends and any
        // other data begins
        renderBackground();

        // Render text item
        renderText( textRenderData );

        // Control is no longer in need of rendering
        isControlInvalidated = false;

        // Make sure that the collider size always matches the control
        updateCollider();

        return buffers;
    }