From 7a5488345c5df4908e771e616782de65bd4711c8 Mon Sep 17 00:00:00 2001 From: julien vulliet Date: Wed, 29 Mar 2017 00:08:25 +0200 Subject: [PATCH] [Nodes] Add GetSpread (DX11.Layer Order) --- .../Layers/Order/LayerGetSpreadOrderNode.cs | 72 +++++++++++++++++++ Nodes/VVVV.DX11.Nodes/VVVV.DX11.Nodes.csproj | 1 + girlpower | 2 +- 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 Nodes/VVVV.DX11.Nodes/Nodes/Layers/Order/LayerGetSpreadOrderNode.cs diff --git a/Nodes/VVVV.DX11.Nodes/Nodes/Layers/Order/LayerGetSpreadOrderNode.cs b/Nodes/VVVV.DX11.Nodes/Nodes/Layers/Order/LayerGetSpreadOrderNode.cs new file mode 100644 index 00000000..8f1d68bb --- /dev/null +++ b/Nodes/VVVV.DX11.Nodes/Nodes/Layers/Order/LayerGetSpreadOrderNode.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using SlimDX; + +using VVVV.PluginInterfaces.V2; + +using FeralTic.Resources.Geometry; + +using VVVV.DX11.Validators; + +namespace VVVV.DX11.Nodes +{ + [PluginInfo(Name = "GetSpread", Category = "DX11.Layer", Version = "Order", Author = "vux", Tags = "layer")] + public class LayerGetSpreadOrderNode : IPluginEvaluate + { + public class DX11LayerGetSpreadOrder : IDX11LayerOrder + { + private List internalBuffer = new List(); + + public bool Enabled + { + get; + set; + } + + public ISpread FInIndex { get; set; } + public ISpread FInCount { get; set; } + + public List Reorder(DX11RenderSettings settings, List objectSettings) + { + internalBuffer.Clear(); + int spreadMax = SpreadUtils.SpreadMax(this.FInCount, this.FInIndex); + for (int i = 0; i < spreadMax; i++) + { + int start = this.FInIndex[i]; + int count = this.FInCount[i]; + for (int j = 0; j < count; j++) + { + internalBuffer.Add(start + j); + } + } + return this.internalBuffer; + } + } + + [Input("Enabled", DefaultValue = 1)] + protected ISpread FInEnabled; + + [Input("Index")] + protected ISpread FInIndex; + + [Input("Count", DefaultValue =1)] + protected ISpread FInCount; + + [Output("Output", IsSingle = true)] + protected ISpread FOut; + + public void Evaluate(int SpreadMax) + { + if (this.FOut[0] == null) { this.FOut[0] = new DX11LayerGetSpreadOrder(); } + + this.FOut[0].Enabled = this.FInEnabled[0]; + this.FOut[0].FInIndex = this.FInIndex; + this.FOut[0].FInCount = this.FInCount; + } + } + + +} diff --git a/Nodes/VVVV.DX11.Nodes/VVVV.DX11.Nodes.csproj b/Nodes/VVVV.DX11.Nodes/VVVV.DX11.Nodes.csproj index e197858c..b3c173a4 100644 --- a/Nodes/VVVV.DX11.Nodes/VVVV.DX11.Nodes.csproj +++ b/Nodes/VVVV.DX11.Nodes/VVVV.DX11.Nodes.csproj @@ -56,6 +56,7 @@ + diff --git a/girlpower b/girlpower index 3804b01c..27b99e66 160000 --- a/girlpower +++ b/girlpower @@ -1 +1 @@ -Subproject commit 3804b01cbacba239b5e12d49f6534cbe627a7f87 +Subproject commit 27b99e66493fe993c266785835e9fb18cedcbcca