+ self.viewport = (0, 0)
+ self._deferred_updates = []
+
+ def move_screen(self, offset):
+ self.viewport = (self.viewport[0] + offset[0],
+ self.viewport[1] + offset[1])
+
+ def calc_offset(self, x, y):
+ """ Return a position offset by the viewport. """
+ return x - self.viewport[0], y - self.viewport[1]