Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ Apply()

override void Terraria.GameContent.Shaders.WaterShaderData.Apply ( )
inlinevirtual

Reimplemented from Terraria.Graphics.Shaders.ShaderData.

Definition at line 358 of file WaterShaderData.cs.

359 {
360 if (_usingRenderTargets && Main.IsGraphicsDeviceAvailable)
361 {
363 Main.graphics.GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;
364 Vector2 vector = new Vector2(Main.screenWidth, Main.screenHeight) * 0.5f * (Vector2.One - Vector2.One / Main.GameViewMatrix.Zoom);
365 Vector2 vector2 = (Main.drawToScreen ? Vector2.Zero : new Vector2(Main.offScreenRange, Main.offScreenRange)) - Main.screenPosition - vector;
367 UseImage(Main.waterTarget, 2, SamplerState.PointClamp);
368 UseTargetPosition(Main.screenPosition - Main.sceneWaterPos + new Vector2(Main.offScreenRange, Main.offScreenRange) + vector);
370 base.Apply();
371 }
372 }
static readonly SamplerState PointClamp
ScreenShaderData UseProgress(float progress)
ScreenShaderData UseTargetPosition(Vector2 position)
ScreenShaderData UseImageOffset(Vector2 offset)
ScreenShaderData UseImage(Texture2D image, int index=0, SamplerState samplerState=null)

References Terraria.GameContent.Shaders.WaterShaderData._distortionTarget, Terraria.GameContent.Shaders.WaterShaderData._lastDistortionDrawOffset, Terraria.GameContent.Shaders.WaterShaderData._progress, Terraria.GameContent.Shaders.WaterShaderData._usingRenderTargets, Terraria.Main.GameViewMatrix, Terraria.Main.graphics, Microsoft.Xna.Framework.Graphics.Texture2D.Height, Terraria.Main.IsGraphicsDeviceAvailable, Terraria.Main.offScreenRange, Microsoft.Xna.Framework.Graphics.SamplerState.PointClamp, Terraria.Main.sceneWaterPos, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.Graphics.Shaders.ScreenShaderData.UseImage(), Terraria.Graphics.Shaders.ScreenShaderData.UseImageOffset(), Terraria.Graphics.Shaders.ScreenShaderData.UseProgress(), Terraria.Graphics.Shaders.ScreenShaderData.UseTargetPosition(), Microsoft.Xna.Framework.Graphics.Vector2, Terraria.Main.waterTarget, and Microsoft.Xna.Framework.Graphics.Texture2D.Width.