void PrepareWrite(int nVertexNumb) { mVerts.CleanPreWrite(nVertexNumb); mOffset.CleanPreWrite(nVertexNumb); mUvs.CleanPreWrite(nVertexNumb); mCols.CleanPreWrite(nVertexNumb); }
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; }