I've found the problem, but I can't seem to find a working alternative.
Basically, I have some code which runs on every third tick:
void Draw()
{
scenebmp.render(bmp, false); //render the current scene to a bitmap image
sceneSurface = new Surface(bmp); //create a new surface from updated bitmap image
window.BlitToScreen(sceneSurface); //send the new surface to the 'window' class to be blitted to the screen
}
'sceneSurface = new Surface(bmp);' is the line which is causing the leak. I have tried putting
sceneSurface.Dispose();
at the end of the code block, but it doesn't seem to have any effect.
What would be the best way to fix this?
Is there a way to update the Surface from a bitmap without creating a new Surface?
Thanks for any assistance.
EDIT: http://pastebin.com/3We9UdVz is the file which contains the problem
EDIT2: Solved by taking a different approach to rendering.