refactor(lifetime): own render resource prefixes
Give terrain, sky, retained UI, portal preparation, and the update/render frame pair explicit single owners. Make shader, texture, text, bindless, and GL construction prefixes checked and retryable so partial failure cannot lose or replay resource ownership. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
fec0d94148
commit
c87b15303d
41 changed files with 3768 additions and 355 deletions
|
|
@ -202,6 +202,8 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
private ResourceShutdownTransaction? _shutdown;
|
||||
private bool _disposed;
|
||||
|
||||
internal bool IsDisposalComplete => _disposed;
|
||||
|
||||
private RetailUiRuntime(RetailUiRuntimeBindings bindings)
|
||||
{
|
||||
_bindings = bindings;
|
||||
|
|
@ -211,6 +213,15 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
bindings.Host.HideWindow);
|
||||
}
|
||||
|
||||
internal static RetailUiRuntime CreateUninitialized(
|
||||
RetailUiRuntimeBindings bindings)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(bindings);
|
||||
return new RetailUiRuntime(bindings);
|
||||
}
|
||||
|
||||
internal void InitializeForLease() => Initialize();
|
||||
|
||||
private void Initialize()
|
||||
{
|
||||
RetailUiRuntimeBindings bindings = _bindings;
|
||||
|
|
@ -298,7 +309,7 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
public static RetailUiRuntime Mount(RetailUiRuntimeBindings bindings)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(bindings);
|
||||
var runtime = new RetailUiRuntime(bindings);
|
||||
var runtime = CreateUninitialized(bindings);
|
||||
try
|
||||
{
|
||||
runtime.Initialize();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue