public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 129
                context.CloneProperties();

                #line 129
                mixin.Mixin.CloneFrom(mixin.Parent.Mixin);

                #line 130
                context.Mixin(mixin, "DeferredShadowLightingShader");

                #line 132
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Nearest)

                {
                        #line 133
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };

                        #line 133
                    context.Mixin(__subMixin, "NearestFilterGroup");
                    mixin.Mixin.AddCompositionToArray("shadows", __subMixin.Mixin);
                }

                #line 134
                else
#line 134
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.PercentageCloserFiltering)

                {
                        #line 135
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };

                        #line 135
                    context.Mixin(__subMixin, "PcfGroup");
                    mixin.Mixin.AddCompositionToArray("shadows", __subMixin.Mixin);
                }

                #line 136
                else
#line 136
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Variance)

                {
                        #line 137
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };

                        #line 137
                    context.Mixin(__subMixin, "VsmGroup");
                    mixin.Mixin.AddCompositionToArray("shadows", __subMixin.Mixin);
                }
            }
Exemple #2
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "BRDFDiffuseBase");
                context.Mixin(mixin, "BRDFSpecularBase");
                if (context.GetParam(MaterialParameters.AlbedoSpecular) != null)
                {
                    context.Mixin(mixin, "AlbedoSpecularBase");

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "albedoSpecular", __subMixin);
                        context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoSpecular));
                        context.PopComposition();
                    }

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "SpecularLighting", __subMixin);
                        context.Mixin(__subMixin, "ParadoxSpecularLighting");
                        context.PopComposition();
                    }
                }
            }
Exemple #3
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 114
                mixin.Mixin.AddMacro("LIGHTING_MAX_LIGHT_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));

                #line 117
                context.Mixin(mixin, "ParadoxLightingTypeShader");

                #line 118
                context.Mixin(mixin, "ShadingPerPixelShadow");

                #line 119
                context.Mixin(mixin, "SpotShading");

                #line 120
                context.Mixin(mixin, "ShadingEyeNormalVS");

                #line 123
                context.Mixin(mixin, "ForwardShadowMapBase");

                #line 124
                context.Mixin(mixin, "ShadowMapCascadeBase");

                #line 126
                mixin.Mixin.AddMacro("SHADOWMAP_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));

                #line 127
                mixin.Mixin.AddMacro("SHADOWMAP_CASCADE_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));

                #line 128
                mixin.Mixin.AddMacro("SHADOWMAP_TOTAL_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount) * context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));

                #line 131
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Nearest)

                    #line 132
                {
                    context.Mixin(mixin, "ShadowMapFilterDefault");
                }

                #line 133
                else
#line 133
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.PercentageCloserFiltering)

                    #line 134
                {
                    context.Mixin(mixin, "ShadowMapFilterPcf");
                }

                #line 135
                else
#line 135
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Variance)

                    #line 136
                {
                    context.Mixin(mixin, "ShadowMapFilterVsm");
                }
            }
Exemple #4
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "A");
                context.Mixin(mixin, "B");
                if (context.GetParam(TestParameters.param1))
                {
                    context.Mixin(mixin, "C");
                    mixin.Mixin.AddMacro("param2", context.GetParam(TestParameters.param2));

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "x", __subMixin);
                        context.Mixin(__subMixin, "X");
                        context.PopComposition();
                    }
                }
                else
                {
                    context.Mixin(mixin, "D");
                    mixin.Mixin.AddMacro("Test", context.GetParam(TestParameters.param3));

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "y", __subMixin);
                        context.Mixin(__subMixin, "Y");
                        context.PopComposition();
                    }
                }
            }
Exemple #5
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ParadoxBaseShader");
                context.Mixin(mixin, "ParadoxSkinning");
                context.Mixin(mixin, "ParadoxShadowCast");
                context.Mixin(mixin, "ParadoxDiffuseForward");
                context.Mixin(mixin, "ParadoxSpecularForward");
                if (context.GetParam(MaterialParameters.AmbientMap) != null)
                {
                    context.Mixin(mixin, "AmbientMapShading");

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "AmbientMap", __subMixin);
                        context.Mixin(__subMixin, context.GetParam(MaterialParameters.AmbientMap));
                        context.PopComposition();
                    }
                }
                if (context.GetParam(MaterialParameters.UseTransparentMask))
                {
                    context.Mixin(mixin, "TransparentShading");
                    context.Mixin(mixin, "DiscardTransparentThreshold", context.GetParam(MaterialParameters.AlphaDiscardThreshold));
                }
                else if (context.GetParam(MaterialParameters.UseTransparent))
                {
                    context.Mixin(mixin, "TransparentShading");
                    context.Mixin(mixin, "DiscardTransparent");
                }
            }
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                {
                    #line 43
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Name = "ParadoxGBufferShaderPass", Parent = mixin
                    };
                    mixin.Children.Add(__subMixin);

                    #line 43
                    context.BeginChild(__subMixin);

                    #line 43
                    context.Mixin(__subMixin, "ParadoxGBufferShaderPass");

                    #line 43
                    context.EndChild();
                }

                #line 47
                context.RemoveMixin(mixin, "NormalVSStream");

                #line 48
                context.RemoveMixin(mixin, "SpecularPowerMap");

                #line 49
                context.RemoveMixin(mixin, "SpecularPowerPerMesh");

                #line 52
                context.Mixin(mixin, "NormalVSGBuffer");

                #line 54
                context.Mixin(mixin, "SpecularPowerGBuffer");
            }
Exemple #7
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Name = "ShadowMapCaster"
                    };
                    context.BeginChild(__subMixin);
                    context.Mixin(__subMixin, "ShadowMapCaster");
                    context.EndChild();
                }
                if (context.GetParam(ShadowMapParameters.ShadowMaps) == null || context.GetParam(ShadowMapParameters.ShadowMaps).Length == 0)
                {
                    return;
                }
                context.Mixin(mixin, "ShadowMapReceiver");
                foreach (var ____1 in context.GetParam(ShadowMapParameters.ShadowMaps))

                {
                    context.PushParameters(____1);

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushCompositionArray(mixin, "shadows", __subMixin);
                        context.Mixin(__subMixin, "ShadowMapReceiverEffect");
                        context.PopComposition();
                    }
                    context.PopParameters();
                }
            }
Exemple #8
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 26
                context.Mixin(mixin, "ShaderBase");

                #line 27
                context.Mixin(mixin, "TransformationWAndVP");

                #line 29
                mixin.Mixin.AddMacro("MAX_VERTEX_COUNT", 9);

                #line 30
                context.Mixin(mixin, "CameraCube");

                #line 32
                context.Mixin(mixin, "AlbedoFlatShading");

                #line 34
                if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null)

                {
                        #line 35
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };

                        #line 35
                    context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
                    mixin.Mixin.AddComposition("albedoDiffuse", __subMixin.Mixin);
                }
            }
Exemple #9
0
        public void TestRenaming2()
        {
            var color1Mixin = new ShaderMixinSource();

            color1Mixin.Mixins.Add(new ShaderClassSource("ComputeColorFixed", "Material.DiffuseColorValue"));
            var color2Mixin = new ShaderMixinSource();

            color2Mixin.Mixins.Add(new ShaderClassSource("ComputeColorFixed", "Material.SpecularColorValue"));

            var compMixin = new ShaderMixinSource();

            compMixin.Mixins.Add(new ShaderClassSource("ComputeColorMultiply"));
            compMixin.AddComposition("color1", color1Mixin);
            compMixin.AddComposition("color2", color2Mixin);

            var mixinSource = new ShaderMixinSource();

            mixinSource.Mixins.Add(new ShaderClassSource("ShadingBase"));
            mixinSource.Mixins.Add(new ShaderClassSource("AlbedoFlatShading"));
            mixinSource.AddComposition("albedoDiffuse", compMixin);

            var mixinSourceTree = new ShaderMixinSourceTree {
                Name = "TestRenaming2", Mixin = mixinSource, UsedParameters = MixinParameters
            };
            var byteCode = Compiler.Compile(mixinSourceTree, new CompilerParameters(), ResultLogger);

            Assert.IsNotNull(byteCode);
        }
Exemple #10
0
 public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
 {
     if (context.GetParam(MaterialParameters.HasSkinningPosition))
     {
         if (context.GetParam(MaterialParameters.SkinningBones) > context.GetParam(MaterialParameters.SkinningMaxBones))
         {
             context.SetParam(MaterialParameters.SkinningMaxBones, context.GetParam(MaterialParameters.SkinningBones));
         }
         mixin.Mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialParameters.SkinningMaxBones));
         context.Mixin(mixin, "TransformationSkinning");
         if (context.GetParam(MaterialParameters.HasSkinningNormal))
         {
             if (context.GetParam(MaterialParameters.NormalMap) != null)
             {
                 context.Mixin(mixin, "TangentToViewSkinning");
             }
             else
             {
                 context.Mixin(mixin, "NormalVSSkinning");
             }
             context.Mixin(mixin, "NormalSkinning");
         }
         if (context.GetParam(MaterialParameters.HasSkinningTangent))
         {
             context.Mixin(mixin, "TangentSkinning");
         }
     }
 }
Exemple #11
0
        public void TestShaderCompilation()
        {
            var generics = new string[3];

            generics[0] = "Texturing.Texture1";
            generics[1] = "TEXCOORD0";
            generics[2] = "float4(2.0,1,1,1)";

            var mixinSource = new ShaderMixinSource();

            mixinSource.Mixins.Add(new ShaderClassSource("GenericClass2", generics));

            var compilerParameters = new ShaderMixinParameters();

            compilerParameters.Set(EffectSourceCodeKeys.Enable, true);
            compilerParameters.Set(CompilerParameters.GraphicsProfileKey, GraphicsProfile.Level_11_0);

            var log = new CompilerResults();

            var compiler = new EffectCompiler();

            compiler.SourceDirectories.Add("shaders");

            var mixinTree = new ShaderMixinSourceTree()
            {
                Name = "TestShaderCompilationGenericClass", Mixin = mixinSource, UsedParameters = compilerParameters
            };
            var effectByteCode = compiler.Compile(mixinTree, new CompilerParameters(), log);
        }
Exemple #12
0
        /// <summary>
        /// Compile the effect and its children.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="mixinTree">The mixin tree.</param>
        /// <param name="compilerParameters">The compiler parameters.</param>
        /// <param name="compilerResults">The compiler results.</param>
        /// <returns>true if the compilation succeded, false otherwise.</returns>
        /// <exception cref="System.ArgumentNullException">name</exception>
        private void Compile(string name, ShaderMixinSourceTree mixinTree, CompilerParameters compilerParameters, CompilerResults compilerResults)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            var bytecode = Compile(mixinTree, compilerParameters, compilerResults);

            if (bytecode != null)
            {
                if (mixinTree.Parent == null)
                {
                    compilerResults.MainBytecode       = bytecode;
                    compilerResults.MainUsedParameters = mixinTree.UsedParameters;
                }
                compilerResults.Bytecodes.Add(name, bytecode);
                compilerResults.UsedParameters.Add(name, mixinTree.UsedParameters);
            }

            foreach (var childTree in mixinTree.Children)
            {
                var childName = (string.IsNullOrEmpty(name) ? string.Empty : name + ".") + childTree.Value.Name;
                Compile(childName, childTree.Value, compilerParameters, compilerResults);
            }
        }
Exemple #13
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ShaderBase");
                context.Mixin(mixin, "ShadingBase");
                context.Mixin(mixin, "TransformationWAndVP");
                context.Mixin(mixin, "PositionVSStream");
                if (context.GetParam(MaterialParameters.NormalMap) != null)
                {
                    context.Mixin(mixin, "NormalMapTexture");

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "normalMap", __subMixin);
                        context.Mixin(__subMixin, context.GetParam(MaterialParameters.NormalMap));
                        context.PopComposition();
                    }
                }
                else
                {
                    context.Mixin(mixin, "NormalVSStream");
                }
            }
Exemple #14
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 14
                context.Mixin(mixin, "A");

                #line 15
                context.Mixin(mixin, "B");

                #line 16
                context.Mixin(mixin, "C");

                {
                    #line 18
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Name = "Test", Parent = mixin
                    };
                    mixin.Children.Add(__subMixin);

                    #line 18
                    context.BeginChild(__subMixin);

                    #line 18
                    context.Mixin(__subMixin, "ChildClone");

                    #line 18
                    context.EndChild();
                }
            }
        /// <summary>
        /// Compile the effect and its children.
        /// </summary>
        /// <param name="effectName">The name of the effect (without the base effect name).</param>
        /// <param name="fullEffectName">The full name of the effect (with the base effect name).</param>
        /// <param name="mixinTree">The ShaderMixinSourceTree.</param>
        /// <param name="mainCompilerParameters">The parameters used to create the main effect.</param>
        /// <param name="compilerParameters">The parameters used to create the child effects</param>
        /// <param name="modifiedShaders">The list of modified shaders since the beginning of the runtime.</param>
        /// <param name="recentlyModifiedShaders">The list of modified shaders that have not been replaced yet.</param>
        /// <param name="compilerResults">The result of the compilation.</param>
        /// <returns>true if the compilation succeded, false otherwise.</returns>
        protected virtual bool Compile(string effectName, string fullEffectName, ShaderMixinSourceTree mixinTree, ShaderMixinParameters mainCompilerParameters, List <ShaderMixinParameters> compilerParameters, HashSet <string> modifiedShaders, HashSet <string> recentlyModifiedShaders, CompilerResults compilerResults)
        {
            if (mixinTree.Mixin == null)
            {
                return(false);
            }

            var cp       = compilerParameters.FirstOrDefault(x => x.Name == fullEffectName);
            var bytecode = Compile(mixinTree.Mixin, fullEffectName, cp ?? mainCompilerParameters, modifiedShaders, recentlyModifiedShaders, compilerResults);

            var wasCompiled = false;

            if (bytecode != null)
            {
                if (effectName == string.Empty)
                {
                    compilerResults.MainBytecode       = bytecode;
                    compilerResults.MainUsedParameters = mainCompilerParameters;
                }
                compilerResults.Bytecodes.Add(effectName, bytecode);
                compilerResults.UsedParameters.Add(effectName, cp);

                wasCompiled = true;
            }

            foreach (var childTree in mixinTree.Children)
            {
                var childEffectName     = effectName == string.Empty ? childTree.Key : effectName + "." + childTree.Key;
                var fullChildEffectName = fullEffectName == string.Empty ? childTree.Key : fullEffectName + "." + childTree.Key;
                wasCompiled |= Compile(childEffectName, fullChildEffectName, childTree.Value, mainCompilerParameters, compilerParameters, modifiedShaders, recentlyModifiedShaders, compilerResults);
            }

            return(wasCompiled);
        }
Exemple #16
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 82
                mixin.Mixin.AddMacro("LIGHTING_MAX_LIGHT_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));

                #line 85
                context.Mixin(mixin, "ParadoxLightingTypeShader");

                #line 86
                context.Mixin(mixin, "ShadingPerPixelShadow");

                #line 87
                context.Mixin(mixin, "DirectionalShading");

                #line 88
                context.Mixin(mixin, "ShadingEyeNormalVS");

                #line 91
                context.Mixin(mixin, "ForwardShadowMapBase");

                #line 92
                context.Mixin(mixin, "ShadowMapCascadeBase");

                #line 94
                mixin.Mixin.AddMacro("SHADOWMAP_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));

                #line 95
                mixin.Mixin.AddMacro("SHADOWMAP_CASCADE_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));

                #line 96
                mixin.Mixin.AddMacro("SHADOWMAP_TOTAL_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount) * context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));

                #line 99
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Nearest)

                    #line 100
                {
                    context.Mixin(mixin, "ShadowMapFilterDefault");
                }

                #line 101
                else
#line 101
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.PercentageCloserFiltering)

                    #line 102
                {
                    context.Mixin(mixin, "ShadowMapFilterPcf");
                }

                #line 103
                else
#line 103
                if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Variance)

                    #line 104
                {
                    context.Mixin(mixin, "ShadowMapFilterVsm");
                }
            }
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 99
                if (context.GetParam(ShadowMapParameters.LightType) == LightType.Directional)

                    #line 100
                {
                    context.Mixin(mixin, "DeferredLightingDirectShadowGroup");
                }

                #line 101
                else
#line 101
                if (context.GetParam(ShadowMapParameters.LightType) == LightType.Spot)

                    #line 102
                {
                    context.Mixin(mixin, "DeferredLightingSpotShadowGroup");
                }

                #line 104
                else

                    #line 104
                {
                    context.Mixin(mixin, "DeferredLightingDirectShadowGroup");
                }
            }
Exemple #18
0
 public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
 {
     mixin.Mixin.AddMacro("LIGHTING_MAX_LIGHT_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));
     context.Mixin(mixin, "ParadoxLightingTypeShader");
     context.Mixin(mixin, "ShadingPerPixelShadow");
     context.Mixin(mixin, "SpotShading");
     context.Mixin(mixin, "ShadingEyeNormalVS");
     context.Mixin(mixin, "ForwardShadowMapBase");
     context.Mixin(mixin, "ShadowMapCascadeBase");
     mixin.Mixin.AddMacro("SHADOWMAP_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));
     mixin.Mixin.AddMacro("SHADOWMAP_CASCADE_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));
     mixin.Mixin.AddMacro("SHADOWMAP_TOTAL_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount) * context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));
     if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Nearest)
     {
         context.Mixin(mixin, "ShadowMapFilterDefault");
     }
     else if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.PercentageCloserFiltering)
     {
         context.Mixin(mixin, "ShadowMapFilterPcf");
     }
     else if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Variance)
     {
         context.Mixin(mixin, "ShadowMapFilterVsm");
     }
 }
Exemple #19
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "A");
                context.Mixin(mixin, "B");
                context.Mixin(mixin, "C");
                int x = 1;

                foreach (var ____1 in context.GetParam(TestParameters.subParameters))

                {
                    context.PushParameters(____1);
                    if (context.GetParam(SubParameters.param1))
                    {
                        context.Mixin(mixin, "C" + x);
                    }
                    x++;
                    context.PopParameters();
                }

                {
                    context.PushParameters(context.GetParam(TestParameters.subParam1));
                    if (context.GetParam(SubParameters.param2) == 1)
                    {
                        context.Mixin(mixin, "D");
                    }
                    context.PopParameters();
                }
            }
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                if (context.GetParam(TestParameters.UseComputeColor2))
                {
                    context.Mixin(mixin, "ComputeColor2");
                }
                else if (context.GetParam(TestParameters.UseComputeColorRedirect))
                {
                    context.Mixin(mixin, "ComputeColorRedirect");

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "ColorRedirect", __subMixin);
                        context.Mixin(__subMixin, "ComputeColor2");
                        context.PopComposition();
                    }
                }
                else
                {
                    context.Mixin(mixin, "ComputeColor");
                }
            }
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.CloneParentMixinToCurrent();
                context.Mixin(mixin, "GBuffer");
                context.Mixin(mixin, "NormalVSStream");
                if (context.GetParam(MaterialParameters.SpecularPowerMap) != null)
                {
                    context.Mixin(mixin, "SpecularPower");

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "SpecularPowerMap", __subMixin);
                        context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularPowerMap));
                        context.PopComposition();
                    }
                }
                if (context.GetParam(MaterialParameters.SpecularIntensityMap) != null)
                {
                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushComposition(mixin, "SpecularIntensityMap", __subMixin);
                        context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularIntensityMap));
                        context.PopComposition();
                    }
                }
            }
Exemple #22
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ShaderBase");
                context.Mixin(mixin, "TransformationWAndVP");
                context.Mixin(mixin, "AlbedoFlatShading");
                if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null)

                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };
                    context.PushComposition(mixin, "albedoDiffuse", __subMixin);
                    context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
                    context.PopComposition();
                }
                else

                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };
                    context.PushComposition(mixin, "albedoDiffuse", __subMixin);
                    context.Mixin(__subMixin, "ComputeColorTextureCubeReflect", TexturingKeys.TextureCube0);
                    context.PopComposition();
                }
            }
Exemple #23
0
 public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
 {
     context.Mixin(mixin, "A");
     context.Mixin(mixin, "B");
     context.Mixin(mixin, "C");
     context.Mixin(mixin, "ChildMixin");
 }
Exemple #24
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ShaderBase");
                context.Mixin(mixin, "ImageEffectShader");
                mixin.Mixin.AddMacro("TEXTURECUBE_BLEND_COUNT", context.GetParam(CubemapBlendRenderer.CubemapCount));
                if (context.GetParam(CubemapBlendRenderer.UseMultipleRenderTargets))
                {
                    context.Mixin(mixin, "CubemapBlenderMRT");
                }
                else
                {
                    context.Mixin(mixin, "CubemapBlender");
                }
                foreach (var ____1 in context.GetParam(CubemapBlendRenderer.Cubemaps))

                {
                    context.PushParameters(____1);

                    {
                        var __subMixin = new ShaderMixinSourceTree()
                        {
                            Parent = mixin
                        };
                        context.PushCompositionArray(mixin, "Cubemaps", __subMixin);
                        context.Mixin(__subMixin, "CubemapFace", context.GetParam(CubemapBlendRenderer.CubemapKey));
                        context.PopComposition();
                    }
                    context.PopParameters();
                }
            }
Exemple #25
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ShaderBase");
                context.Mixin(mixin, "TransformationWVP");
                context.Mixin(mixin, "BRDFDiffuseBase");
                context.Mixin(mixin, "BRDFSpecularBase");
                context.Mixin(mixin, "AlbedoFlatShading");
                context.Mixin(mixin, "TransparentShading");
                if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null)

                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };
                    context.PushComposition(mixin, "albedoDiffuse", __subMixin);
                    context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
                    context.PopComposition();
                }
                if (context.GetParam(MaterialParameters.AlbedoSpecular) != null)

                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };
                    context.PushComposition(mixin, "albedoSpecular", __subMixin);
                    context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoSpecular));
                    context.PopComposition();
                }
            }
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "A");

                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };
                    context.PushComposition(mixin, "SubCompute1", __subMixin);
                    context.Mixin(__subMixin, "ABCSubEffect");
                    context.PopComposition();
                }

                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };
                    context.PushComposition(mixin, "SubCompute2", __subMixin);
                    context.Mixin(__subMixin, "ABCSubEffect");
                    context.PopComposition();
                }

                {
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };
                    context.PushCompositionArray(mixin, "SubComputes", __subMixin);
                    context.Mixin(__subMixin, "ABCSubEffect");
                    context.PopComposition();
                }
            }
 public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
 {
     mixin.Mixin.AddMacro("LIGHTING_MAX_LIGHT_COUNT", context.GetParam(LightingKeys.MaxDirectionalLights));
     if (context.GetParam(LightingKeys.UnrollDirectionalLightLoop))
     {
         mixin.Mixin.AddMacro("LIGHTING_UNROLL_LOOP", true);
     }
     if (context.GetParam(MaterialParameters.LightingType) == MaterialLightingType.DiffusePixel)
     {
         context.Mixin(mixin, "ShadingDiffusePerPixel");
     }
     else if (context.GetParam(MaterialParameters.LightingType) == MaterialLightingType.DiffuseVertex)
     {
         context.Mixin(mixin, "ShadingDiffusePerVertex");
     }
     else if (context.GetParam(MaterialParameters.LightingType) == MaterialLightingType.DiffuseSpecularPixel)
     {
         context.Mixin(mixin, "ShadingDiffuseSpecularPerPixel");
     }
     else if (context.GetParam(MaterialParameters.LightingType) == MaterialLightingType.DiffuseVertexSpecularPixel)
     {
         context.Mixin(mixin, "ShadingDiffusePerVertexSpecularPerPixel");
     }
     context.Mixin(mixin, "DirectionalShading");
     context.Mixin(mixin, "ShadingEyeNormalVS");
 }
Exemple #28
0
 public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
 {
     mixin.Mixin.AddMacro("LIGHTING_MAX_LIGHT_COUNT", context.GetParam(LightingKeys.MaxDirectionalLights));
     context.Mixin(mixin, "ParadoxLightingTypeShader");
     context.Mixin(mixin, "DirectionalShading");
     context.Mixin(mixin, "ShadingEyeNormalVS");
 }
Exemple #29
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 13
                context.Mixin(mixin, "ShaderBase");

                #line 14
                context.Mixin(mixin, "TransformationWAndVP");

                #line 15
                context.Mixin(mixin, "PositionVSStream");

                #line 16
                context.Mixin(mixin, "NormalVSStream");

                #line 18
                mixin.Mixin.AddMacro("RENDER_TARGET_COUNT", 3);

                #line 19
                context.Mixin(mixin, "ShadingBase");

                #line 20
                if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null)

                {
                        #line 21
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };

                        #line 21
                    context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
                    mixin.Mixin.AddComposition("ShadingColor0", __subMixin.Mixin);
                }

                {
                    #line 22
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };

                    #line 22
                    context.Mixin(__subMixin, "LinearDepth");
                    mixin.Mixin.AddComposition("ShadingColor1", __subMixin.Mixin);
                }

                {
                    #line 23
                    var __subMixin = new ShaderMixinSourceTree()
                    {
                        Parent = mixin
                    };

                    #line 23
                    context.Mixin(__subMixin, "NormalColor");
                    mixin.Mixin.AddComposition("ShadingColor2", __subMixin.Mixin);
                }
            }
Exemple #30
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                #line 7
                context.Mixin(mixin, "C1");

                #line 8
                context.Mixin(mixin, "C2");
            }
Exemple #31
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ShaderBase");
                context.Mixin(mixin, "TransformationWAndVP");
                context.Mixin(mixin, "AlbedoFlatShading");

                {
                    var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
                    context.PushComposition(mixin, "albedoDiffuse", __subMixin);
                    context.Mixin(__subMixin, "ComputeColorTextureCubeBasic", TexturingKeys.TextureCube0);
                    context.PopComposition();
                }
            }
Exemple #32
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ShaderBase");
                context.Mixin(mixin, "TransformationWAndVP");
                mixin.Mixin.AddMacro("MAX_VERTEX_COUNT", 9);
                context.Mixin(mixin, "CameraCube");
                context.Mixin(mixin, "AlbedoFlatShading");
                if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null)

                    {
                        var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
                        context.PushComposition(mixin, "albedoDiffuse", __subMixin);
                        context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
                        context.PopComposition();
                    }
            }
Exemple #33
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "ShaderBase");
                context.Mixin(mixin, "TransformationWAndVP");
                context.Mixin(mixin, "AlbedoFlatShading");
                if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null)

                    {
                        var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
                        context.PushComposition(mixin, "albedoDiffuse", __subMixin);
                        context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
                        context.PopComposition();
                    }
                else

                    {
                        var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
                        context.PushComposition(mixin, "albedoDiffuse", __subMixin);
                        context.Mixin(__subMixin, "ComputeColorTextureCubeReflect", TexturingKeys.TextureCube0);
                        context.PopComposition();
                    }
            }
Exemple #34
0
            public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
            {
                context.Mixin(mixin, "XenkoBaseShader");

                {
                    var __subMixin = new ShaderMixinSourceTree() { Name = "XenkoGBufferShaderPass" };
                    context.BeginChild(__subMixin);
                    context.Mixin(__subMixin, "XenkoGBufferShaderPass");
                    context.EndChild();
                }
            }
 public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
 {
     context.Mixin(mixin, "ParadoxDefaultLightPrepassEffect");
 }
 public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
 {
     context.Mixin(mixin, "ParadoxDefaultDeferredShader");
 }