2021-01-20 03:33:27 +00:00
|
|
|
|
using RefreshCS;
|
|
|
|
|
using System;
|
2021-02-06 03:51:10 +00:00
|
|
|
|
using System.Runtime.InteropServices;
|
2021-01-20 03:33:27 +00:00
|
|
|
|
|
|
|
|
|
namespace MoonWorks.Graphics
|
|
|
|
|
{
|
2022-02-23 05:14:32 +00:00
|
|
|
|
public class ComputePipeline : GraphicsResource
|
|
|
|
|
{
|
|
|
|
|
protected override Action<IntPtr, IntPtr, IntPtr> QueueDestroyFunction => Refresh.Refresh_QueueDestroyComputePipeline;
|
2021-01-20 03:33:27 +00:00
|
|
|
|
|
2022-03-02 19:45:37 +00:00
|
|
|
|
public ComputeShaderInfo ComputeShaderInfo { get; }
|
2021-01-27 22:02:46 +00:00
|
|
|
|
|
2022-02-23 05:14:32 +00:00
|
|
|
|
public unsafe ComputePipeline(
|
|
|
|
|
GraphicsDevice device,
|
2022-03-02 19:42:26 +00:00
|
|
|
|
ComputeShaderInfo computeShaderInfo
|
2022-02-23 05:14:32 +00:00
|
|
|
|
) : base(device)
|
|
|
|
|
{
|
2022-03-02 19:42:26 +00:00
|
|
|
|
var refreshComputeShaderInfo = new Refresh.ComputeShaderInfo
|
2022-02-23 05:14:32 +00:00
|
|
|
|
{
|
2022-03-02 19:42:26 +00:00
|
|
|
|
entryPointName = computeShaderInfo.EntryPointName,
|
|
|
|
|
shaderModule = computeShaderInfo.ShaderModule.Handle,
|
|
|
|
|
uniformBufferSize = computeShaderInfo.UniformBufferSize,
|
2022-03-02 21:57:30 +00:00
|
|
|
|
bufferBindingCount = computeShaderInfo.BufferBindingCount,
|
|
|
|
|
imageBindingCount = computeShaderInfo.ImageBindingCount
|
2022-02-23 05:14:32 +00:00
|
|
|
|
};
|
2021-01-20 03:33:27 +00:00
|
|
|
|
|
2022-02-23 05:14:32 +00:00
|
|
|
|
Handle = Refresh.Refresh_CreateComputePipeline(
|
|
|
|
|
device.Handle,
|
2022-03-02 19:42:26 +00:00
|
|
|
|
refreshComputeShaderInfo
|
2022-02-23 05:14:32 +00:00
|
|
|
|
);
|
2021-01-27 22:02:46 +00:00
|
|
|
|
|
2022-03-02 19:45:37 +00:00
|
|
|
|
ComputeShaderInfo = computeShaderInfo;
|
2022-02-23 05:14:32 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2021-01-20 03:33:27 +00:00
|
|
|
|
}
|