| | using ILGPU;
|
| | using ILGPU.Runtime;
|
| | using System;
|
| |
|
| | namespace FastPrint.Slicing
|
| | {
|
| | public class SliceAccelerator : IDisposable
|
| | {
|
| | private Context context;
|
| | private Accelerator accelerator;
|
| |
|
| | public SliceAccelerator()
|
| | {
|
| | context = Context.CreateDefault();
|
| | accelerator = context.GetPreferredDevice(preferCPU: false).CreateAccelerator(context);
|
| | }
|
| |
|
| |
|
| | public void Slice(float[] vertices, float layerHeight, Action<float[]> onSliced)
|
| | {
|
| | using var buffer = accelerator.Allocate1D(vertices);
|
| | accelerator.Synchronize();
|
| |
|
| | onSliced(vertices);
|
| | }
|
| |
|
| | public void Dispose()
|
| | {
|
| | accelerator.Dispose();
|
| | context.Dispose();
|
| | }
|
| | }
|
| | } |