MoonWorks/src/Graphics/Resources/ComputePipeline.cs

36 lines
984 B
C#
Raw Normal View History

using RefreshCS;
using System;
2021-02-06 03:51:10 +00:00
using System.Runtime.InteropServices;
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;
2022-03-02 19:45:37 +00:00
public ComputeShaderInfo ComputeShaderInfo { get; }
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,
bufferBindingCount = computeShaderInfo.BufferBindingCount,
imageBindingCount = computeShaderInfo.ImageBindingCount
2022-02-23 05:14:32 +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
);
2022-03-02 19:45:37 +00:00
ComputeShaderInfo = computeShaderInfo;
2022-02-23 05:14:32 +00:00
}
}
}