Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Apply() [2/2]

virtual void Terraria.Graphics.Shaders.MiscShaderData.Apply ( DrawData? drawData = null)
inlinevirtual

Definition at line 36 of file MiscShaderData.cs.

37 {
38 base.Shader.Parameters["uColor"].SetValue(_uColor);
39 base.Shader.Parameters["uSaturation"].SetValue(_uSaturation);
40 base.Shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor);
41 base.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly);
42 base.Shader.Parameters["uOpacity"].SetValue(_uOpacity);
43 base.Shader.Parameters["uShaderSpecificData"].SetValue(_shaderSpecificData);
44 if (drawData.HasValue)
45 {
46 DrawData value = drawData.Value;
47 Vector4 value2 = Vector4.Zero;
48 if (drawData.Value.sourceRect.HasValue)
49 {
50 value2 = new Vector4(value.sourceRect.Value.X, value.sourceRect.Value.Y, value.sourceRect.Value.Width, value.sourceRect.Value.Height);
51 }
52 base.Shader.Parameters["uSourceRect"].SetValue(value2);
53 base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position);
54 base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height));
55 }
56 else
57 {
58 base.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f));
59 }
61 if (_customSamplerState != null)
62 {
63 value3 = _customSamplerState;
64 }
65 if (_uImage0 != null)
66 {
67 Main.graphics.GraphicsDevice.Textures[0] = _uImage0.Value;
68 Main.graphics.GraphicsDevice.SamplerStates[0] = value3;
69 base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(_uImage0.Width(), _uImage0.Height()));
70 }
71 if (_uImage1 != null)
72 {
73 Main.graphics.GraphicsDevice.Textures[1] = _uImage1.Value;
74 Main.graphics.GraphicsDevice.SamplerStates[1] = value3;
75 base.Shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage1.Width(), _uImage1.Height()));
76 }
77 if (_uImage2 != null)
78 {
79 Main.graphics.GraphicsDevice.Textures[2] = _uImage2.Value;
80 Main.graphics.GraphicsDevice.SamplerStates[2] = value3;
81 base.Shader.Parameters["uImageSize2"].SetValue(new Vector2(_uImage2.Width(), _uImage2.Height()));
82 }
84 base.Apply();
85 }
static readonly SamplerState LinearWrap

References Terraria.Graphics.Shaders.MiscShaderData._customSamplerState, Terraria.Graphics.Shaders.MiscShaderData._shaderSpecificData, Terraria.Graphics.Shaders.MiscShaderData._uColor, Terraria.Graphics.Shaders.MiscShaderData._uImage0, Terraria.Graphics.Shaders.MiscShaderData._uImage1, Terraria.Graphics.Shaders.MiscShaderData._uImage2, Terraria.Graphics.Shaders.MiscShaderData._uOpacity, Terraria.Graphics.Shaders.MiscShaderData._uSaturation, Terraria.Graphics.Shaders.MiscShaderData._uSecondaryColor, Terraria.Graphics.Shaders.MiscShaderData._useProjectionMatrix, Terraria.Main.GlobalTimeWrappedHourly, Terraria.Main.graphics, Microsoft.Xna.Framework.Graphics.SamplerState.LinearWrap, Terraria.Main.screenPosition, ReLogic.Content.Asset< T >.Value, System.value, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Graphics.Vector4, and Microsoft.Xna.Framework.Vector4.Zero.

Referenced by Terraria.Graphics.EmpressBladeDrawer.Draw(), Terraria.Graphics.FlameLashDrawer.Draw(), Terraria.Graphics.LightDiscDrawer.Draw(), Terraria.Graphics.MagicMissileDrawer.Draw(), Terraria.Graphics.RainbowRodDrawer.Draw(), and Terraria.GameContent.PlayerTitaniumStormBuffTextureContent.HandleUseReqest().