Esempio n. 1
0
 void PrepareWrite(int nVertexNumb)
 {
     mVerts.CleanPreWrite(nVertexNumb);
     mOffset.CleanPreWrite(nVertexNumb);
     mUvs.CleanPreWrite(nVertexNumb);
     mCols.CleanPreWrite(nVertexNumb);
 }
Esempio n. 2
0
    void AdjustIndexs(int nVertexCount)
    {
        int nOldSize = mIndices.size;
        int nNewSize = mVerts.size / 4 * 6;

        mIndices.CleanPreWrite(nVertexCount / 4 * 6);
        // 填充多余的
        int nMaxCount = mIndices.buffer.Length;

        int[] Indices = mIndices.buffer;

        int index = 0;
        int i     = 0;

        for (; i < nVertexCount; i += 4)
        {
            Indices[index++] = i;
            Indices[index++] = i + 1;
            Indices[index++] = i + 2;

            Indices[index++] = i + 2;
            Indices[index++] = i + 3;
            Indices[index++] = i;
        }
        int nLast = nVertexCount - 1;

        for (; index < nMaxCount;)
        {
            Indices[index++] = nLast;
            Indices[index++] = nLast;
            Indices[index++] = nLast;
            Indices[index++] = nLast;
            Indices[index++] = nLast;
            Indices[index++] = nLast;
        }
        mIndices.size = index;
    }