Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
BasicShaders.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\BasicShaders.pdxfx"
19 using SiliconStudio.Paradox.Effects.Data;
20 
21 #line 4
22 using SiliconStudio.Paradox.Effects.Modules;
23 
24 #line 6
25 namespace BasicShaders
26 {
27  [DataContract]
28 #line 8
30  {
31 
32  #line 10
33  public static readonly ParameterKey<bool> UsedNormalMap = ParameterKeys.New<bool>(false);
34  };
35 
36  #line 16
37  internal static partial class ShaderMixins
38  {
39  internal partial class ParadoxTessellation : IShaderMixinBuilder
40  {
41  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
42  {
43  }
44 
45  [ModuleInitializer]
46  internal static void __Initialize__()
47 
48  {
49  ShaderMixinManager.Register("ParadoxTessellation", new ParadoxTessellation());
50  }
51  }
52  }
53 
54  #line 30
55  internal static partial class ShaderMixins
56  {
57  internal partial class ParadoxSkinning : IShaderMixinBuilder
58  {
59  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
60  {
61 
62  #line 35
63  if (context.GetParam(MaterialParameters.HasSkinningPosition))
64  {
65 
66  #line 37
67  if (context.GetParam(MaterialParameters.SkinningBones) > context.GetParam(MaterialParameters.SkinningMaxBones))
68  {
69 
70  #line 40
71  context.SetParam(MaterialParameters.SkinningMaxBones, context.GetParam(MaterialParameters.SkinningBones));
72  }
73 
74  #line 42
75  mixin.Mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialParameters.SkinningMaxBones));
76 
77  #line 43
78  context.Mixin(mixin, "TransformationSkinning");
79 
80  #line 45
81  if (context.GetParam(MaterialParameters.HasSkinningNormal))
82  {
83 
84  #line 47
85  if (context.GetParam(BasicShadersParameters.UsedNormalMap))
86 
87  #line 48
88  context.Mixin(mixin, "TangentToViewSkinning");
89 
90  #line 50
91  else
92 
93  #line 50
94  context.Mixin(mixin, "NormalVSSkinning");
95 
96  #line 52
97  context.Mixin(mixin, "NormalSkinning");
98  }
99 
100  #line 55
101  if (context.GetParam(MaterialParameters.HasSkinningTangent))
102 
103  #line 56
104  context.Mixin(mixin, "TangentSkinning");
105  }
106  }
107 
108  [ModuleInitializer]
109  internal static void __Initialize__()
110 
111  {
112  ShaderMixinManager.Register("ParadoxSkinning", new ParadoxSkinning());
113  }
114  }
115  }
116 
117  #line 63
118  internal static partial class ShaderMixins
119  {
120  internal partial class ParadoxShadowCast : IShaderMixinBuilder
121  {
122  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
123  {
124 
125  #line 68
126  if (context.GetParam(LightingKeys.CastShadows))
127 
128  {
129 
130  #line 69
131  var __subMixin = new ShaderMixinSourceTree() { Name = "ShadowMapCaster", Parent = mixin };
132  mixin.Children.Add(__subMixin);
133 
134  #line 69
135  context.BeginChild(__subMixin);
136 
137  #line 69
138  context.Mixin(__subMixin, "ShadowMapCaster");
139 
140  #line 69
141  context.EndChild();
142  }
143  }
144 
145  [ModuleInitializer]
146  internal static void __Initialize__()
147 
148  {
149  ShaderMixinManager.Register("ParadoxShadowCast", new ParadoxShadowCast());
150  }
151  }
152  }
153 
154  #line 75
155  internal static partial class ShaderMixins
156  {
157  internal partial class ParadoxBaseShader : IShaderMixinBuilder
158  {
159  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
160  {
161 
162  #line 80
163  context.Mixin(mixin, "ShaderBase");
164 
165  #line 81
166  context.Mixin(mixin, "ShadingBase");
167 
168  #line 82
169  context.Mixin(mixin, "TransformationWAndVP");
170 
171  #line 84
172  context.Mixin(mixin, "PositionVSStream");
173 
174  #line 86
175  if (context.GetParam(MaterialParameters.NormalMap) != null)
176  {
177 
178  #line 88
179  context.Mixin(mixin, "NormalMapTexture");
180 
181  {
182 
183  #line 89
184  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
185 
186  #line 89
187  context.Mixin(__subMixin, context.GetParam(MaterialParameters.NormalMap));
188  mixin.Mixin.AddComposition("normalMap", __subMixin.Mixin);
189  }
190 
191  #line 90
192  context.SetParam(BasicShadersParameters.UsedNormalMap, true);
193  }
194 
195  #line 93
196  else
197  {
198 
199  #line 94
200  context.Mixin(mixin, "NormalVSStream");
201  }
202  }
203 
204  [ModuleInitializer]
205  internal static void __Initialize__()
206 
207  {
208  ShaderMixinManager.Register("ParadoxBaseShader", new ParadoxBaseShader());
209  }
210  }
211  }
212 }
Key of an effect parameter.
Definition: ParameterKey.cs:15
static readonly ParameterKey< bool > HasSkinningNormal
A context used when mixin ShaderSource.
static readonly ParameterKey< bool > HasSkinningTangent
static readonly ParameterKey< int > SkinningBones
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...
static readonly ParameterKey< ShaderMixinSource > NormalMap
static readonly ParameterKey< bool > HasSkinningPosition
SiliconStudio.Paradox.Graphics.Buffer Buffer
Definition: BasicShaders.cs:15
static readonly ParameterKey< bool > CastShadows
Flag stating if the mesh casts shadows.
Definition: LightingKeys.cs:68
Interface to be implemented for dynamic mixin generation.
static readonly ParameterKey< bool > UsedNormalMap
Definition: BasicShaders.cs:33