示例#1
0
 public static void SetData <T>(
     this IPlatformBuffer buffer, int offset, T[] data, int startIndex, int count, BufferSetDataMode mode) where T : unmanaged
 {
     fixed(T *p = &data[startIndex])
     {
         buffer.SetData(offset, new IntPtr(p), count * sizeof(T), mode);
     }
 }
示例#2
0
 public static void SetData <T>(
     this IPlatformBuffer buffer, int offset, ref T data, BufferSetDataMode mode) where T : unmanaged
 {
     fixed(T *p = &data)
     {
         buffer.SetData(offset, new IntPtr(p), sizeof(T), mode);
     }
 }
示例#3
0
 public void SetVertexBuffer(int slot, IPlatformBuffer buffer, int offset)
 {
     if (vertexBuffers[slot] != buffer || vertexOffsets[slot] != offset)
     {
         vertexBuffers[slot]     = (PlatformBuffer)buffer;
         vertexOffsets[slot]     = offset;
         vertexBuffersDirtyMask |= 1L << slot;
     }
 }
示例#4
0
 public void SetIndexBuffer(IPlatformBuffer buffer, int offset, IndexFormat format)
 {
     if (indexBuffer != buffer)
     {
         indexBuffer      = (PlatformBuffer)buffer;
         indexBufferDirty = true;
     }
     indexOffset = offset;
     indexFormat = format;
 }
示例#5
0
 private void DisposeInternal()
 {
     if (platformBuffer != null)
     {
         var platformBufferCopy = platformBuffer;
         Window.Current.InvokeOnRendering(() => {
             platformBufferCopy.Dispose();
         });
         platformBuffer = null;
     }
 }
示例#6
0
 private void EnsurePlatformBuffer(int size)
 {
     if (platformBuffer == null || platformBuffer.Size != size)
     {
         if (platformBuffer != null)
         {
             platformBuffer.Dispose();
         }
         platformBuffer = PlatformRenderer.Context.CreateBuffer(bufferType, size, Dynamic);
         Rebind();
     }
 }
示例#7
0
 public static void SetData <T>(
     this IPlatformBuffer buffer, int offset, T[] data, BufferSetDataMode mode) where T : unmanaged
 {
     SetData(buffer, offset, data, 0, data.Length, mode);
 }