Use self.swap_buffers() instead of the explicit backend method