acdream/src/AcDream.App/Rendering/PaperdollViewportRenderer.cs
Erik f6fe0f2a4f
All checks were successful
CI / linux-portable (push) Successful in 3m27s
CI / windows-gate (push) Successful in 6m42s
CI / release (push) Successful in 2m12s
fix(client): restore retail interaction parity
Harden keyboard and camera routing, inventory and vendor interactions, chat/emotes, relog portal flow, and paperdoll rendering. Add retail research, connected gate coverage, and release-gate validation.
2026-08-26 20:45:11 +02:00

51 lines
1.5 KiB
C#

using AcDream.App.Rendering.Wb;
using AcDream.App.UI;
using AcDream.Core.Lighting;
using AcDream.Core.World;
namespace AcDream.App.Rendering;
/// <summary>
/// Paperdoll-specific facade over the shared private creature viewport. The
/// fixed camera remains the verbatim retail <c>gmPaperDollUI</c> camera.
/// </summary>
public sealed class PaperdollViewportRenderer :
IUiViewportRenderer,
IPaperdollDollRenderer,
IDisposable
{
private readonly PrivateEntityViewportRenderer _renderer;
internal PaperdollViewportRenderer(
IWorldPassScope scope,
AcDream.App.Rendering.Gpu.IGpuDevice device,
ICurrentGpuFrameSource frames,
WbDrawDispatcher dispatcher,
SceneLightingUboBinding lightUbo,
IEntityTextureLifetime textureLifetime,
IWbMeshAdapter meshAdapter)
{
_renderer = new PrivateEntityViewportRenderer(
scope,
device,
frames,
dispatcher,
lightUbo,
textureLifetime,
meshAdapter,
DollEntityBuilder.DollRenderId,
new DollViewportCamera(),
"paperdoll");
}
public bool TextureIsBottomUp => _renderer.TextureIsBottomUp;
public void SetDoll(WorldEntity? doll) => _renderer.SetEntity(doll);
public void Prepare() => _renderer.Prepare();
public uint Render(int width, int height) =>
_renderer.Render(width, height);
public void Dispose() => _renderer.Dispose();
}