public GLESSurfaceDescription RequestRenderbuffer( All format, int width, int height, int fsaa )
{
GLESSurfaceDescription retval = new GLESSurfaceDescription();
if (format != All.NoneOes)
{
RBFormat key = new RBFormat(format, width, height, fsaa);
RBRef iter;
if (_renderBuffer.TryGetValue(key, out iter))
{
retval.Buffer = iter.Buffer;
retval.ZOffset = 0;
retval.NumSamples = fsaa;
iter.RefCount++;
}
else
{
// New one
GLESRenderBuffer rb = new GLESRenderBuffer(format, width, height, fsaa);
_renderBuffer.Add(key, new RBRef(rb));
retval.Buffer = rb;
retval.ZOffset = 0;
retval.NumSamples = fsaa;
}
}
return retval;
}