Fix multi-release bug in texturearrayslicer.

This commit is contained in:
Ottermandias 2025-12-20 15:34:08 +01:00
parent 2418d705f6
commit 400c4d3986

View file

@ -17,7 +17,7 @@ public sealed unsafe class TextureArraySlicer : Luna.IUiService, IDisposable
/// <remarks> Caching this across frames will cause a crash to desktop. </remarks>
public ImTextureId GetImGuiHandle(Texture* texture, byte sliceIndex)
{
if (texture == null)
if (texture is null)
throw new ArgumentNullException(nameof(texture));
if (sliceIndex >= texture->ArraySize)
throw new ArgumentOutOfRangeException(nameof(sliceIndex),
@ -73,9 +73,6 @@ public sealed unsafe class TextureArraySlicer : Luna.IUiService, IDisposable
{
ID3D11ShaderResourceView* slicedSrv = null;
Marshal.ThrowExceptionForHR(device->CreateShaderResourceView(resource, &description, &slicedSrv));
resource->Release();
device->Release();
state = new SliceState(slicedSrv);
_activeSlices.Add(((nint)texture, sliceIndex), state);
return new ImTextureId((nint)state.ShaderResourceView);