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

◆ QueueSprite()

void Terraria.DataStructures.SpriteDrawBuffer.QueueSprite ( Vector4 destinationRect,
Vector2 origin,
VertexColors colors,
Vector4 sourceRectangle,
Vector2 texCoordTL,
Vector2 texCoordBR,
Texture2D texture,
float depth,
float rotation )
inlineprivate

Definition at line 196 of file SpriteDrawBuffer.cs.

197 {
198 float num = origin.X / sourceRectangle.Z;
199 float num2 = origin.Y / sourceRectangle.W;
200 float x = destinationRect.X;
201 float y = destinationRect.Y;
202 float z = destinationRect.Z;
203 float w = destinationRect.W;
204 float num3 = num * z;
205 float num4 = num2 * w;
206 float num5;
207 float num6;
208 if (rotation != 0f)
209 {
210 num5 = (float)Math.Cos(rotation);
211 num6 = (float)Math.Sin(rotation);
212 }
213 else
214 {
215 num5 = 1f;
216 num6 = 0f;
217 }
218 if (vertexCount + 4 >= maxSprites * 4)
219 {
220 maxSprites *= 2;
222 }
223 textures[vertexCount / 4] = texture;
224 PushVertex(new Vector3(x + num3 * num5 - num4 * num6, y + num3 * num6 + num4 * num5, depth), colors.TopLeftColor, texCoordTL);
225 PushVertex(new Vector3(x + (num3 + z) * num5 - num4 * num6, y + (num3 + z) * num6 + num4 * num5, depth), colors.TopRightColor, new Vector2(texCoordBR.X, texCoordTL.Y));
226 PushVertex(new Vector3(x + num3 * num5 - (num4 + w) * num6, y + num3 * num6 + (num4 + w) * num5, depth), colors.BottomLeftColor, new Vector2(texCoordTL.X, texCoordBR.Y));
227 PushVertex(new Vector3(x + (num3 + z) * num5 - (num4 + w) * num6, y + (num3 + z) * num6 + (num4 + w) * num5, depth), colors.BottomRightColor, texCoordBR);
228 }
static double Cos(double d)
static double Sin(double a)
void PushVertex(Vector3 pos, Color color, Vector2 texCoord)

References Terraria.Graphics.VertexColors.BottomLeftColor, Terraria.Graphics.VertexColors.BottomRightColor, System.Math.Cos(), Terraria.DataStructures.SpriteDrawBuffer.CreateBuffers(), Terraria.DataStructures.SpriteDrawBuffer.maxSprites, Terraria.DataStructures.SpriteDrawBuffer.PushVertex(), System.Math.Sin(), Terraria.DataStructures.SpriteDrawBuffer.textures, Terraria.Graphics.VertexColors.TopLeftColor, Terraria.Graphics.VertexColors.TopRightColor, Microsoft.Xna.Framework.Graphics.Vector3, Terraria.DataStructures.SpriteDrawBuffer.vertexCount, Microsoft.Xna.Framework.Vector4.W, Microsoft.Xna.Framework.Vector2.X, Microsoft.Xna.Framework.Vector4.X, Microsoft.Xna.Framework.Vector2.Y, Microsoft.Xna.Framework.Vector4.Y, and Microsoft.Xna.Framework.Vector4.Z.

Referenced by Terraria.DataStructures.SpriteDrawBuffer.Draw().