Fixes the flash overlay being offset in separated UI mode (#18415)

This commit is contained in:
deathride58
2023-07-31 00:41:24 -04:00
committed by GitHub
parent 69c1676d9d
commit dd04f5c4d2

View File

@@ -22,7 +22,7 @@ namespace Content.Client.Flash
[Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPlayerManager _playerManager = default!;
public override OverlaySpace Space => OverlaySpace.ScreenSpace; public override OverlaySpace Space => OverlaySpace.WorldSpace;
private readonly ShaderInstance _shader; private readonly ShaderInstance _shader;
private double _startTime = -1; private double _startTime = -1;
private double _lastsFor = 1; private double _lastsFor = 1;
@@ -61,18 +61,16 @@ namespace Content.Client.Flash
if (percentComplete >= 1.0f) if (percentComplete >= 1.0f)
return; return;
var screenSpaceHandle = args.ScreenHandle; var worldHandle = args.WorldHandle;
screenSpaceHandle.UseShader(_shader); worldHandle.UseShader(_shader);
_shader.SetParameter("percentComplete", percentComplete); _shader.SetParameter("percentComplete", percentComplete);
var screenSize = UIBox2.FromDimensions(new Vector2(0, 0), _displayManager.ScreenSize);
if (_screenshotTexture != null) if (_screenshotTexture != null)
{ {
screenSpaceHandle.DrawTextureRect(_screenshotTexture, screenSize); worldHandle.DrawTextureRectRegion(_screenshotTexture, args.WorldBounds);
} }
screenSpaceHandle.UseShader(null); worldHandle.UseShader(null);
} }
protected override void DisposeBehavior() protected override void DisposeBehavior()