some tweaks to ResourceUploader
parent
50b8cb11c9
commit
178a5ea3cf
|
@ -47,9 +47,11 @@ namespace MoonWorks.Graphics
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Prepares upload of data into a GpuBuffer.
|
/// Prepares upload of data into a GpuBuffer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void SetBufferData<T>(GpuBuffer buffer, uint bufferOffset, Span<T> data) where T : unmanaged
|
public void SetBufferData<T>(GpuBuffer buffer, uint bufferOffsetInElements, Span<T> data) where T : unmanaged
|
||||||
{
|
{
|
||||||
var lengthInBytes = (uint) (Marshal.SizeOf<T>() * data.Length);
|
uint elementSize = (uint) Marshal.SizeOf<T>();
|
||||||
|
uint offsetInBytes = elementSize * bufferOffsetInElements;
|
||||||
|
uint lengthInBytes = (uint) (elementSize * data.Length);
|
||||||
|
|
||||||
uint resourceOffset;
|
uint resourceOffset;
|
||||||
fixed (void* spanPtr = data)
|
fixed (void* spanPtr = data)
|
||||||
|
@ -57,12 +59,19 @@ namespace MoonWorks.Graphics
|
||||||
resourceOffset = CopyData(spanPtr, lengthInBytes);
|
resourceOffset = CopyData(spanPtr, lengthInBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
var bufferCopyParams = new BufferCopy(resourceOffset, bufferOffset, lengthInBytes);
|
var bufferCopyParams = new BufferCopy(resourceOffset, offsetInBytes, lengthInBytes);
|
||||||
BufferUploads.Add((buffer, bufferCopyParams));
|
BufferUploads.Add((buffer, bufferCopyParams));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Textures
|
// Textures
|
||||||
|
|
||||||
|
public Texture CreateTexture2D(Span<byte> pixelData, uint width, uint height)
|
||||||
|
{
|
||||||
|
var texture = Texture.CreateTexture2D(Device, width, height, TextureFormat.R8G8B8A8, TextureUsageFlags.Sampler);
|
||||||
|
SetTextureData(texture, pixelData);
|
||||||
|
return texture;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a 2D Texture from compressed image data to be uploaded.
|
/// Creates a 2D Texture from compressed image data to be uploaded.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in New Issue