Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
ShadowMaps.cs
Go to the documentation of this file.
1 // <auto-generated>
2 // Do not edit this file yourself!
3 //
4 // This code was generated by Paradox Shader Mixin Code Generator.
5 // To generate it yourself, please install SiliconStudio.Paradox.VisualStudio.Package .vsix
6 // and re-save the associated .pdxfx.
7 // </auto-generated>
8 
9 using System;
10 using SiliconStudio.Core;
11 using SiliconStudio.Paradox.Effects;
12 using SiliconStudio.Paradox.Graphics;
13 using SiliconStudio.Paradox.Shaders;
14 using SiliconStudio.Core.Mathematics;
16 
17 
18 #line 3 "D:\Code\Paradox\sources\shaders\ShadowMap\ShadowMaps.pdxfx"
19 using SiliconStudio.Paradox.Engine;
20 
21 #line 5
22 namespace SiliconStudio.Paradox.Effects.Modules
23 {
24 
25  #line 8
26  internal static partial class ShaderMixins
27  {
28  internal partial class ShadowMapReceiverEffect : IShaderMixinBuilder
29  {
30  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
31  {
32 
33  #line 12
34  context.Mixin(mixin, "ShadowMapCascadeBase");
35 
36  #line 14
37  mixin.Mixin.AddMacro("SHADOWMAP_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));
38 
39  #line 15
40  mixin.Mixin.AddMacro("SHADOWMAP_CASCADE_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));
41 
42  #line 17
43  if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Nearest)
44 
45  #line 18
46  context.Mixin(mixin, "ShadowMapFilterDefault");
47 
48  #line 19
49  else
50 #line 19
51  if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.PercentageCloserFiltering)
52 
53  #line 20
54  context.Mixin(mixin, "ShadowMapFilterPcf");
55 
56  #line 21
57  else
58 #line 21
59  if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Variance)
60 
61  #line 22
62  context.Mixin(mixin, "ShadowMapFilterVsm");
63  }
64 
65  [ModuleInitializer]
66  internal static void __Initialize__()
67 
68  {
69  ShaderMixinManager.Register("ShadowMapReceiverEffect", new ShadowMapReceiverEffect());
70  }
71  }
72  }
73 
74  #line 26
75  internal static partial class ShaderMixins
76  {
77  internal partial class ShadowMapCaster : IShaderMixinBuilder
78  {
79  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
80  {
81 
82  #line 31
83  context.CloneProperties();
84 
85  #line 31
86  mixin.Mixin.CloneFrom(mixin.Parent.Mixin);
87 
88  #line 32
89  context.Mixin(mixin, "ShadowMapCasterBase");
90 
91  #line 34
92  if (context.GetParam(ShadowMapParameters.FilterType) == ShadowMapFilterType.Variance)
93 
94  #line 35
95  context.Mixin(mixin, "ShadowMapCasterVsm");
96  }
97 
98  [ModuleInitializer]
99  internal static void __Initialize__()
100 
101  {
102  ShaderMixinManager.Register("ShadowMapCaster", new ShadowMapCaster());
103  }
104  }
105  }
106 
107  #line 39
108  internal static partial class ShaderMixins
109  {
110  internal partial class ShadowMapEffect : IShaderMixinBuilder
111  {
112  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
113  {
114 
115  {
116 
117  #line 43
118  var __subMixin = new ShaderMixinSourceTree() { Name = "ShadowMapCaster", Parent = mixin };
119  mixin.Children.Add(__subMixin);
120 
121  #line 43
122  context.BeginChild(__subMixin);
123 
124  #line 43
125  context.Mixin(__subMixin, "ShadowMapCaster");
126 
127  #line 43
128  context.EndChild();
129  }
130 
131  #line 45
132  if (context.GetParam(ShadowMapParameters.ShadowMaps) == null || context.GetParam(ShadowMapParameters.ShadowMaps).Length == 0)
133 
134  #line 46
135  return;
136 
137  #line 48
138  context.Mixin(mixin, "ShadowMapReceiver");
139 
140  #line 53
141  foreach(var ____1 in context.GetParam(ShadowMapParameters.ShadowMaps))
142 
143  {
144 
145  #line 53
146  context.PushParameters(____1);
147 
148  {
149 
150  #line 55
151  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
152 
153  #line 55
154  context.Mixin(__subMixin, "ShadowMapReceiverEffect");
155  mixin.Mixin.AddCompositionToArray("shadows", __subMixin.Mixin);
156  }
157 
158  #line 53
159  context.PopParameters();
160  }
161  }
162 
163  [ModuleInitializer]
164  internal static void __Initialize__()
165 
166  {
167  ShaderMixinManager.Register("ShadowMapEffect", new ShadowMapEffect());
168  }
169  }
170  }
171 }
static readonly ParameterKey< ShadowMapFilterType > FilterType
Filter type of the shadow map.
SiliconStudio.Paradox.Graphics.Buffer Buffer
Definition: ShadowMaps.cs:15
A context used when mixin ShaderSource.
static readonly ParameterKey< ShadowMapParameters[]> ShadowMaps
List of all the shadow map configurations.
All-in-One Buffer class linked SharpDX.Direct3D11.Buffer.
void Mixin(ShaderMixinSourceTree mixinTree, string name, params object[] genericParameters)
Mixins a ShaderClassSource identified by its name/generic parameters into the specified mixin tree...
Interface to be implemented for dynamic mixin generation.