Exemplo n.º 1
0
        // 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());
                    }
                }
            }
        }
Exemplo n.º 2
0
        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);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        // 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);
                }
            }
        }
Exemplo n.º 4
0
 public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable)
 {
     subscribeTo.AsResource().SetResource(resourceView);
 }
Exemplo n.º 5
0
 public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable)
 {
     subscribeTo.AsResource().SetResource(variable.Material.ToonTexture);
 }
Exemplo n.º 6
0
 public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable)
 {
     subscribeTo.AsResource().SetResource(this.shaderResource);
 }
Exemplo n.º 7
0
 public override void Subscribe(EffectVariable subscribeTo, SubscribeArgument variable)
 {
     subscribeTo.AsResource().SetResource(variable.Material.MaterialSphereMap);
 }
Exemplo n.º 8
0
 public static void Set(this EffectVariable var, ShaderResourceView[] value)
 {
     var.AsResource().SetResourceArray(value);
 }
 public EffectOnlyResourceArrayVariable(EffectVariable v)
 {
     _v = v.AsResource();
 }