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

◆ DrawPlayer_RenderAllLayers()

static void Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_RenderAllLayers ( ref PlayerDrawSet drawinfo)
inlinestatic

Definition at line 3499 of file PlayerDrawLayers.cs.

3500 {
3501 List<DrawData> drawDataCache = drawinfo.DrawDataCache;
3502 if (spriteBuffer == null)
3503 {
3504 spriteBuffer = new SpriteDrawBuffer(Main.graphics.GraphicsDevice, 200);
3505 }
3506 else
3507 {
3508 spriteBuffer.CheckGraphicsDevice(Main.graphics.GraphicsDevice);
3509 }
3510 foreach (DrawData item in drawDataCache)
3511 {
3512 if (item.texture != null)
3513 {
3514 item.Draw(spriteBuffer);
3515 }
3516 }
3517 spriteBuffer.UploadAndBind();
3518 DrawData cdd = default(DrawData);
3519 int num = 0;
3520 for (int i = 0; i <= drawDataCache.Count; i++)
3521 {
3522 if (drawinfo.projectileDrawPosition == i)
3523 {
3524 if (cdd.shader != 0)
3525 {
3526 Main.pixelShader.CurrentTechnique.Passes[0].Apply();
3527 }
3528 spriteBuffer.Unbind();
3529 DrawHeldProj(drawinfo, Main.projectile[drawinfo.drawPlayer.heldProj]);
3530 spriteBuffer.Bind();
3531 }
3532 if (i != drawDataCache.Count)
3533 {
3534 cdd = drawDataCache[i];
3535 if (!cdd.sourceRect.HasValue)
3536 {
3537 cdd.sourceRect = cdd.texture.Frame();
3538 }
3539 PlayerDrawHelper.SetShaderForData(drawinfo.drawPlayer, drawinfo.cHead, ref cdd);
3540 if (cdd.texture != null)
3541 {
3542 spriteBuffer.DrawSingle(num++);
3543 }
3544 }
3545 }
3546 spriteBuffer.Unbind();
3547 Main.pixelShader.CurrentTechnique.Passes[0].Apply();
3548 }
static void DrawHeldProj(PlayerDrawSet drawinfo, Projectile proj)

References System.Collections.Generic.Dictionary< TKey, TValue >.Count, Terraria.DataStructures.PlayerDrawLayers.DrawHeldProj(), Terraria.Main.graphics, System.item, Terraria.Main.pixelShader, Terraria.Main.projectile, Terraria.DataStructures.PlayerDrawHelper.SetShaderForData(), and Terraria.DataStructures.PlayerDrawLayers.spriteBuffer.

Referenced by Terraria.Graphics.Renderers.LegacyPlayerRenderer.DrawPlayer().