2021-07-11 22:59:29 -05:00
|
|
|
// Decompiled with JetBrains decompiler
|
|
|
|
|
// Type: Microsoft.Iris.Render.Common.SharedRenderObject
|
|
|
|
|
// Assembly: UIX.RenderApi, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
|
|
|
|
// MVID: D47658B8-A8EA-43D6-8837-ECE823BFFFC1
|
|
|
|
|
// Assembly location: C:\Program Files\Zune\UIX.RenderApi.dll
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
|
|
|
|
|
namespace Microsoft.Iris.Render.Common
|
|
|
|
|
{
|
2021-07-11 23:04:40 -05:00
|
|
|
internal class SharedRenderObject : ISharedRenderObject
|
2021-07-11 22:59:29 -05:00
|
|
|
{
|
2021-07-11 23:04:40 -05:00
|
|
|
private int m_cUsers;
|
|
|
|
|
|
|
|
|
|
internal SharedRenderObject()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
~SharedRenderObject() => this.Dispose(false);
|
|
|
|
|
|
|
|
|
|
private void Dispose()
|
|
|
|
|
{
|
|
|
|
|
this.Dispose(true);
|
2021-07-11 23:07:04 -05:00
|
|
|
GC.SuppressFinalize(this);
|
2021-07-11 23:04:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void Dispose(bool fInDispose)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int ISharedRenderObject.UsageCount => this.m_cUsers;
|
|
|
|
|
|
|
|
|
|
void ISharedRenderObject.RegisterUsage(object user) => this.RegisterUsage(user);
|
|
|
|
|
|
|
|
|
|
void ISharedRenderObject.UnregisterUsage(object user) => this.UnregisterUsage(user);
|
|
|
|
|
|
|
|
|
|
internal virtual void RegisterUsage(object user) => ++this.m_cUsers;
|
|
|
|
|
|
|
|
|
|
internal virtual void UnregisterUsage(object user)
|
|
|
|
|
{
|
|
|
|
|
--this.m_cUsers;
|
|
|
|
|
if (this.m_cUsers != 0)
|
|
|
|
|
return;
|
|
|
|
|
this.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal int UsageCount => this.m_cUsers;
|
|
|
|
|
|
|
|
|
|
[Conditional("DEBUG")]
|
|
|
|
|
public static void DEBUG_BeginTrackingObjects()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Conditional("DEBUG")]
|
|
|
|
|
public static void DEBUG_StopTrackingObjects()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal string DebugDescription
|
|
|
|
|
{
|
|
|
|
|
get => "<unknown>";
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Conditional("DEBUG")]
|
|
|
|
|
protected virtual void Invariant()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Conditional("DEBUG")]
|
|
|
|
|
private void Invariant(bool fValidateUsers)
|
|
|
|
|
{
|
|
|
|
|
if (!fValidateUsers)
|
|
|
|
|
return;
|
|
|
|
|
Debug2.Validate(this.m_cUsers > 0, typeof(ObjectDisposedException), "No registered user");
|
|
|
|
|
}
|
2021-07-11 22:59:29 -05:00
|
|
|
}
|
|
|
|
|
}
|