public void ReleaseRenderbuffer( GLESSurfaceDescription surface )
{
if (surface.Buffer == null)
return;
RBFormat key = new RBFormat(surface.Buffer.GLFormat, surface.Buffer.Width, surface.Buffer.Height, surface.NumSamples);
RBRef refval;
if (_renderBuffer.TryGetValue(key, out refval))
{
// Decrease refcount
refval.RefCount--;
if (refval.RefCount == 0)
{
// If refcount reaches zero, delete buffer and remove from map
refval.Buffer.Dispose();
_renderBuffer.Remove(key);
}
else
{
_renderBuffer[key] = refval;
}
}
}