// System.Collections.Generic.SortedDictionary<int,Vector2> public void RebuildTextureCache() { texturecache.Clear(); passindex.Clear(); for (int i = 0; i < this.shader.DefaultEffect.Description.GlobalVariableCount; i++) { EffectVariable var = this.shader.DefaultEffect.GetVariableByIndex(i); if (var.GetVariableType().Description.TypeName == "Texture2D") { EffectResourceVariable rv = var.AsResource(); texturecache.Add(rv); } if (var.GetVariableType().Description.TypeName == "float" || var.GetVariableType().Description.TypeName == "int") { if (var.Description.Semantic == "PASSINDEX") { passindex.Add(var.AsScalar()); } if (var.Description.Semantic == "PASSITERATIONINDEX") { passiterindex.Add(var.AsScalar()); } } } }
public ImageShaderInfo(DX11ShaderInstance shader) { var effect = shader.Effect; this.techniqueInfo = new ImageShaderTechniqueInfo[effect.Description.TechniqueCount]; int maxPassCount = 0; for (int i = 0; i < this.techniqueInfo.Length; i++) { this.techniqueInfo[i] = new ImageShaderTechniqueInfo(effect.GetTechniqueByIndex(i)); maxPassCount = this.techniqueInfo[i].PassCount > maxPassCount ? this.techniqueInfo[i].PassCount : maxPassCount; } //Set list of max pass count this.passResultVariableArray = new List <EffectResourceVariable> [maxPassCount]; for (int i = 0; i < effect.Description.GlobalVariableCount; i++) { EffectVariable var = effect.GetVariableByIndex(i); if (var.GetVariableType().Description.TypeName == "Texture2D") { EffectResourceVariable rv = var.AsResource(); if (rv.Description.Semantic == "INITIAL") { this.initialTextureVariables.Add(rv); } if (rv.Description.Semantic == "PREVIOUS") { this.previousTextureVariables.Add(rv); } if (rv.Description.Semantic == "DEPTHTEXTURE") { this.depthTextureVariables.Add(rv); } //If semantic starts with passresult if (rv.Description.Semantic.StartsWith("PASSRESULT")) { string sidx = rv.Description.Semantic.Substring(10); int pridx; if (int.TryParse(sidx, out pridx)) { if (pridx < maxPassCount) { if (this.passResultVariableArray[pridx] == null) { this.passResultVariableArray[pridx] = new List <EffectResourceVariable>(); } this.passResultVariableArray[pridx].Add(rv); } } } } } }
// System.Collections.Generic.SortedDictionary<int,Vector2> public void RebuildTextureCache() { texturecache.Clear(); for (int i = 0; i < this.shader.DefaultEffect.Description.GlobalVariableCount; i++) { EffectVariable var = this.shader.DefaultEffect.GetVariableByIndex(i); if (var.GetVariableType().Description.TypeName == "Texture2D") { EffectResourceVariable rv = var.AsResource(); texturecache.Add(rv); } } }
public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable) { subscribeTo.AsResource().SetResource(resourceView); }
public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable) { subscribeTo.AsResource().SetResource(variable.Material.ToonTexture); }
public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable) { subscribeTo.AsResource().SetResource(this.shaderResource); }
public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable) { subscribeTo.AsResource().SetResource(variable.Material.MaterialSphereMap); }
public static void Set(this EffectVariable var, ShaderResourceView[] value) { var.AsResource().SetResourceArray(value); }
public EffectOnlyResourceArrayVariable(EffectVariable v) { _v = v.AsResource(); }