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

◆ PrepareTextureIfNecessary()

void Terraria.GameContent.TilePaintSystemV2.ARenderTargetHolder.PrepareTextureIfNecessary ( Texture2D originalTexture,
Rectangle? sourceRect = null )
inlineprotectedinherited

Definition at line 31 of file TilePaintSystemV2.cs.

32 {
33 if (Target == null || Target.IsContentLost)
34 {
35 Main instance = Main.instance;
36 if (!sourceRect.HasValue)
37 {
38 sourceRect = originalTexture.Frame();
39 }
40 Target = new RenderTarget2D(instance.GraphicsDevice, sourceRect.Value.Width, sourceRect.Value.Height, mipMap: false, instance.GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.None, 0, RenderTargetUsage.PreserveContents);
41 Target.ContentLost += Target_ContentLost;
42 Target.Disposing += Target_Disposing;
43 instance.GraphicsDevice.SetRenderTarget(Target);
44 instance.GraphicsDevice.Clear(Color.Transparent);
45 Main.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
47 Rectangle value = sourceRect.Value;
48 value.X = 0;
49 value.Y = 0;
50 Main.spriteBatch.Draw(originalTexture, value, Color.White);
51 Main.spriteBatch.End();
52 instance.GraphicsDevice.SetRenderTarget(null);
53 _wasPrepared = true;
54 }
55 }
static readonly BlendState AlphaBlend
Definition BlendState.cs:36
static Color Transparent
Definition Color.cs:76

References Terraria.GameContent.TilePaintSystemV2.ARenderTargetHolder._wasPrepared, Microsoft.Xna.Framework.Graphics.BlendState.AlphaBlend, Terraria.Main.instance, Microsoft.Xna.Framework.Graphics.RenderTarget2D.IsContentLost, Terraria.GameContent.TilePaintSystemV2.ARenderTargetHolder.PrepareShader(), Terraria.Main.spriteBatch, Terraria.GameContent.TilePaintSystemV2.ARenderTargetHolder.Target, Terraria.GameContent.TilePaintSystemV2.ARenderTargetHolder.Target_ContentLost(), Terraria.GameContent.TilePaintSystemV2.ARenderTargetHolder.Target_Disposing(), Microsoft.Xna.Framework.Color.Transparent, System.value, and Microsoft.Xna.Framework.Color.White.

Referenced by Terraria.GameContent.TilePaintSystemV2.TreeTopRenderTargetHolder.Prepare(), Terraria.GameContent.TilePaintSystemV2.TreeBranchTargetHolder.Prepare(), Terraria.GameContent.TilePaintSystemV2.TileRenderTargetHolder.Prepare(), and Terraria.GameContent.TilePaintSystemV2.WallRenderTargetHolder.Prepare().