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); } }
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); } }
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; } }
public void SetIndexBuffer(IPlatformBuffer buffer, int offset, IndexFormat format) { if (indexBuffer != buffer) { indexBuffer = (PlatformBuffer)buffer; indexBufferDirty = true; } indexOffset = offset; indexFormat = format; }
private void DisposeInternal() { if (platformBuffer != null) { var platformBufferCopy = platformBuffer; Window.Current.InvokeOnRendering(() => { platformBufferCopy.Dispose(); }); platformBuffer = null; } }
private void EnsurePlatformBuffer(int size) { if (platformBuffer == null || platformBuffer.Size != size) { if (platformBuffer != null) { platformBuffer.Dispose(); } platformBuffer = PlatformRenderer.Context.CreateBuffer(bufferType, size, Dynamic); Rebind(); } }
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); }