Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 void InitMultiPartVBOIfNeed()
 {
     if (_vbo != null)
     {
         return;
     }
     //
     _vbo = new VertexBufferObject();
     _vbo.CreateBuffers(_allCoords.ToArray(), _allArrayIndexList.ToArray(), _partIndexList.ToArray());
 }
Esempio n. 3
0
 /// <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);
 }
Esempio n. 4
0
 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
 }