public void Render(IPluginIO pin, DX11RenderContext context, DX11RenderSettings settings) { if (this.FEnabled[0]) { List <IDX11ObjectValidator> valids = new List <IDX11ObjectValidator>(); if (this.FInVal.IsConnected) { for (int i = 0; i < this.FInVal.SliceCount; i++) { if (this.FInVal[i].Enabled) { IDX11ObjectValidator v = this.FInVal[i]; //v.Reset(); v.SetGlobalSettings(settings); valids.Add(v); settings.ObjectValidators.Add(v); } } } if (this.FLayerIn.IsConnected) { for (int i = 0; i < this.FLayerIn.SliceCount; i++) { this.FLayerIn[i][context].Render(this.FLayerIn.PluginIO, context, settings); } } foreach (IDX11ObjectValidator v in valids) { settings.ObjectValidators.Remove(v); } } }
public bool ValidateObject(DX11ObjectRenderSettings obj) { for (int i = 0; i < this.ObjectValidators.Count; i++) { IDX11ObjectValidator objval = this.ObjectValidators[i]; if (objval.Enabled) { if (!objval.Validate(obj)) { return(false); } } } return(true); }
public void Render(IPluginIO pin, DX11RenderContext context, DX11RenderSettings settings) { if (this.spmax > 0) { if (this.FEnabled[0]) { bool popstate = false; if (this.FInState.PluginIO.IsConnected) { context.RenderStateStack.Push(this.FInState[0]); popstate = true; } List <IDX11RenderSemantic> semantics = new List <IDX11RenderSemantic>(); if (this.FInSemantics.PluginIO.IsConnected) { semantics.AddRange(this.FInSemantics); settings.CustomSemantics.AddRange(semantics); } List <DX11Resource <IDX11RenderSemantic> > ressemantics = new List <DX11Resource <IDX11RenderSemantic> >(); if (this.FInResSemantics.PluginIO.IsConnected) { ressemantics.AddRange(this.FInResSemantics); settings.ResourceSemantics.AddRange(ressemantics); } List <IDX11ObjectValidator> valids = new List <IDX11ObjectValidator>(); if (this.FInVal.PluginIO.IsConnected) { for (int i = 0; i < this.FInVal.SliceCount; i++) { if (this.FInVal[i].Enabled) { IDX11ObjectValidator v = this.FInVal[i]; //v.Reset(); v.SetGlobalSettings(settings); valids.Add(v); settings.ObjectValidators.Add(v); } } } if (this.BeginQuery != null) { this.BeginQuery(context); } foreach (IIOContainer <Pin <DX11Resource <DX11Layer> > > dxpin in this.FLayers) { if (dxpin.IOObject.PluginIO.IsConnected) { try { dxpin.IOObject[0][context].Render(dxpin.IOObject.PluginIO, context, settings); } catch { } } } if (this.EndQuery != null) { this.EndQuery(context); } foreach (IDX11RenderSemantic semantic in semantics) { settings.CustomSemantics.Remove(semantic); } foreach (DX11Resource <IDX11RenderSemantic> rs in ressemantics) { settings.ResourceSemantics.Remove(rs); } foreach (IDX11ObjectValidator v in valids) { settings.ObjectValidators.Remove(v); } if (popstate) { context.RenderStateStack.Pop(); } } } }