Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReleaseBinding()

void Microsoft.Xna.Framework.Graphics.DeclarationManager.ReleaseBinding ( DeclarationBinding binding)
inlinepackage

Definition at line 79 of file DeclarationManager.cs.

80 {
81 bool lockTaken = false;
82 try
83 {
85 if (--binding.referenceCount <= 0)
86 {
87 binding.root.RecursiveRelease();
88 List<DeclarationBinding.BindingNode>.Enumerator enumerator = new List<DeclarationBinding.BindingNode>(binding.indirectOffspring.Keys).GetEnumerator();
89 while (enumerator.MoveNext())
90 {
91 enumerator.Current.RemoveChild(binding);
92 }
93 bindings.Remove(binding.elements);
94 }
95 }
96 finally
97 {
98 if (lockTaken)
99 {
100 Monitor.Exit(this);
101 }
102 }
103 }
Dictionary< VertexElement[], DeclarationBinding > bindings
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
static void Exit(object obj)
static void Enter(object obj)

References Microsoft.Xna.Framework.Graphics.DeclarationManager.bindings, System.Threading.Monitor.Enter(), System.Threading.Monitor.Exit(), System.Collections.Generic.Dictionary< TKey, TValue >.Keys, and System.Collections.Generic.Dictionary< TKey, TValue >.Remove().

Referenced by Microsoft.Xna.Framework.Graphics.VertexDeclaration.Bind(), and Microsoft.Xna.Framework.Graphics.VertexDeclaration.Unbind().