public void ReleaseRenderBuffer( GLSurfaceDesc surface )
{
if ( surface.Buffer == null )
return;
RBFormat key = new RBFormat( surface.Buffer.GLFormat, surface.Buffer.Width, surface.Buffer.Height );
RBRef value;
if ( _renderBufferMap.TryGetValue( key, out value ) )
{
// Decrease refcount
value.Refcount--;
if ( value.Refcount == 0 )
{
// If refcount reaches zero, delete buffer and remove from map
value.Buffer.Dispose();
_renderBufferMap.Remove( key );
LogManager.Instance.Write( "Destroyed renderbuffer of format {0} of {1}x{2}", key.Format, key.Width, key.Height );
}
}
}