Files
Xune/UIX.RenderApi.Skia/Microsoft/Iris/Render/Common/SharedRenderObject.cs
T

82 lines
2.0 KiB
C#
Raw Normal View History

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
}
}