Esempio n. 1
0
 public static void ReleaseAll()
 {
     UIDrawCall.ClearAll();
     UIDrawCall.ReleaseInactive();
     while (UIDrawCall.matCache.Count > 0)
     {
         Material obj = UIDrawCall.matCache.Dequeue();
         NGUITools.DestroyImmediate(obj);
     }
 }
Esempio n. 2
0
 static public int ClearAll_s(IntPtr l)
 {
     try {
         UIDrawCall.ClearAll();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Esempio n. 3
0
    /// <summary>
    /// Fill the geometry fully, processing all widgets and re-creating all draw calls.
    /// </summary>

    static public void Fill()
    {
        UIDrawCall.ClearAll();

        int        index = 0;
        UIPanel    pan   = null;
        Material   mat   = null;
        Texture    tex   = null;
        Shader     sdr   = null;
        UIDrawCall dc    = null;

        for (int i = 0; i < UIWidget.list.size;)
        {
            UIWidget w = UIWidget.list[i];

            if (w == null)
            {
                UIWidget.list.RemoveAt(i);
                continue;
            }

            if (w.isVisible)
            {
                UIPanel  pn = w.panel;
                Material mt = w.material;
                Texture  tx = w.mainTexture;
                Shader   sd = w.shader;

                if (pan != pn || mat != mt || tex != tx || sdr != sd)
                {
                    if (pan != null && mVerts.size != 0)
                    {
                        pan.SubmitDrawCall(dc);
                        dc = null;
                    }

                    pan = pn;
                    mat = mt;
                    tex = tx;
                    sdr = sd;
                }

                if (pan != null && (mat != null || sdr != null || tex != null))
                {
                    if (dc == null)
                    {
                        dc            = UIDrawCall.Create(index++, pan, mat, tex, sdr);
                        dc.depthStart = w.raycastDepth;
                        dc.depthEnd   = dc.depthStart;
                        dc.panel      = pan;
                    }
                    else
                    {
                        int rd = w.raycastDepth;
                        if (rd < dc.depthStart)
                        {
                            dc.depthStart = rd;
                        }
                        if (rd > dc.depthEnd)
                        {
                            dc.depthEnd = rd;
                        }
                    }

                    w.drawCall = dc;

                    if (pan.generateNormals)
                    {
                        w.WriteToBuffers(mVerts, mUvs, mCols, mNorms, mTans);
                    }
                    else
                    {
                        w.WriteToBuffers(mVerts, mUvs, mCols, null, null);
                    }
                }
            }
            else
            {
                w.drawCall = null;
            }
            ++i;
        }
        if (mVerts.size != 0)
        {
            pan.SubmitDrawCall(dc);
        }
    }
Esempio n. 4
0
 // Token: 0x06000502 RID: 1282 RVA: 0x00030BAF File Offset: 0x0002EDAF
 public static void ReleaseAll()
 {
     UIDrawCall.ClearAll();
     UIDrawCall.ReleaseInactive();
 }
Esempio n. 5
0
 public unsafe static long $Invoke1(long instance, long *args)
 {
     UIDrawCall.ClearAll();
     return(-1L);
 }