Esempio n. 1
0
 public override void Update(int[] indices, int updateCount)
 {
     if (_32BitIndices)
     {
         indexBuffer.SetData <int>(indices, 0, updateCount);
     }
     else
     {
         var indicesTEMP = new short[updateCount];
         for (int i = 0; i != updateCount; ++i)
         {
             indicesTEMP[i] = (short)indices[i];
         }
         indexBuffer.SetData <short>(indicesTEMP, 0, updateCount);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Creates a new instance of <see cref="XNAIndexBufferImplementation"/>.
        /// </summary>
        /// <param name="renderer">The XNA renderer.</param>
        /// <param name="indices">The index data</param>
        /// <param name="usage">The buffer usage specifying what type of memory the buffer should be created in.</param>
        internal XNAIndexBufferImplementation(XNARenderer renderer, DataBuffer <int> indices, ResourceUsage usage)
            : base(indices, usage)
        {
            _renderer       = renderer;
            _graphicsDevice = renderer.GraphicsDevice;

            if (usage == ResourceUsage.Static)
            {
                _indexBuffer = new XFG.IndexBuffer(_graphicsDevice, XNAIndexFormat, indices.Length, XFG.BufferUsage.None);
            }
            else
            {
                _indexBuffer = new XFG.DynamicIndexBuffer(_graphicsDevice, XNAIndexFormat, indices.Length, XFG.BufferUsage.None);
            }
            _indexBuffer.SetData <int>(indices.Buffer);
        }