void InitMultiPartBorderVBOIfNeed() { if (_vbo_smoothBorder != null) { return; } // _vbo_smoothBorder = new VertexBufferObject(); List <SmoothBorderSet> borderSets = this.smoothBorders; int j = borderSets.Count; PartRange[] partRanges = new PartRange[j]; int currentFirstComponentStartAt = 0; List <float> expandedBorderCoords = new List <float>(); for (int i = 0; i < j; ++i) { SmoothBorderSet borderSet = borderSets[i]; //create part range partRanges[i] = new PartRange(currentFirstComponentStartAt, 0, borderSet.vertexStripCount); expandedBorderCoords.AddRange(borderSet.smoothBorderArr); currentFirstComponentStartAt += borderSet.smoothBorderArr.Length; } _borderPartRanges = partRanges; _vbo_smoothBorder.CreateBuffers(expandedBorderCoords.ToArray(), null, partRanges); }
void InitMultiPartVBOIfNeed() { if (_vbo != null) { return; } // _vbo = new VertexBufferObject(); _vbo.CreateBuffers(_allCoords.ToArray(), _allArrayIndexList.ToArray(), _partIndexList.ToArray()); }
/// <summary> /// vertex buffer of the solid area part /// </summary> public VertexBufferObject GetAreaTessAsVBO(TessTool tess) { if (_vboArea == null) { //tess indexListArray = tess.TessAsTriIndexArray(coordXYs, null, out tessXYCoords2, out this._tessAreaVertexCount); _vboArea = new VertexBufferObject(); _vboArea.CreateBuffers(tessXYCoords2, indexListArray, null); } return(_vboArea); }
public void BuildBuffer(bool clearInputXYs = true) { if (_vbo != null) { //must clear this first throw new System.Exception(); } //---------------- _vbo = new VertexBufferObject(); _vbo.CreateBuffers(_mergedInputXYs.ToArray(), null); if (clearInputXYs) { _mergedInputXYs.Clear(); _mergedInputXYs = null; } //clear _mergedInputXYs }