namespace Lib.render._dx11.api; [Guid("eb68addb-ec59-416f-8608-ff9d2319f3a3")] internal sealed class CalcDispatchCount : Instance { [Output(Guid = "35c0e513-812f-49e2-96fa-17541751c19b")] public readonly Slot DispatchCount = new(); public CalcDispatchCount() { DispatchCount.UpdateAction += Update; } private void Update(EvaluationContext context) { int count = Count.GetValue(context); Int3 groupSize = ThreadGroupSize.GetValue(context); DispatchCount.Value = (groupSize.X > 0) ? new Int3(count / groupSize.X+1, 1, 1) : Int3.Zero; } [Input(Guid = "3979e440-7888-4249-9975-74b21c6b813c")] public readonly InputSlot ThreadGroupSize = new(); [Input(Guid = "f79ccc37-05fd-4f81-97d6-6c1cafca180c")] public readonly InputSlot Count = new(); }