| @@ -52,7 +52,12 @@ class Time: | |||
| class Display: | |||
| def __init__(self, width=640, height=480): | |||
| self._init = False | |||
| self._resolution = width, height | |||
| self._resolution = (width, height) | |||
| self._display_surface = None | |||
| self._display_flags = Display.FLAG_RESIZABLE | Display.FLAG_HWSURFACE | Display.FLAG_DOUBLEBUF | |||
| def _isFlagSet(self, flag): | |||
| return (self._display_flags & flag) == flag | |||
| @property | |||
| def surface(self): | |||
| @@ -60,19 +65,76 @@ class Display: | |||
| @property | |||
| def width(self): | |||
| if self._display_surface is None: | |||
| return 0 | |||
| return self._resolution[0] | |||
| @property | |||
| def height(self): | |||
| if self._display_surface is None: | |||
| return 0 | |||
| return self._resolution[1] | |||
| @property | |||
| def resolution(self): | |||
| if self._display_surface is None: | |||
| return (0,0) | |||
| return self._display_surface.get_size() | |||
| @property | |||
| def fullscreen(self): | |||
| return self._isFlagSet(Display.FLAG_FULLSCREEN) | |||
| @property | |||
| def double_buffered(self): | |||
| return self._isFlagSet(Display.FLAG_DOUBLEBUF) | |||
| @property | |||
| def resizable(self): | |||
| return self._isFlagSet(Display.FLAG_RESIZABLE) | |||
| @property | |||
| def no_frame(self): | |||
| return self._isFlagSet(Display.FLAG_NOFRAME) | |||
| @property | |||
| def opengl(self): | |||
| return self._isFlagSet(Display.FLAG_OPENGL) | |||
| def toggle_fullscreen(self): | |||
| if self._isFlagSet(Display.FLAG_FULLSCREEN): | |||
| self._display_flags ^= Display.FLAG_FULLSCREEN | |||
| else: | |||
| self._display_flags |= Display.FLAG_FULLSCREEN | |||
| self.set_mode(self._resolution, flags) | |||
| def set_mode(self, resolution, flags): | |||
| if (self._init == False): | |||
| self._init = True | |||
| pygame.init() | |||
| self._display_surface = pygame.display.set_mode(resolution, flags) | |||
| self._display_flags = self._display_surface.get_flags() | |||
| self._resolution = self._display_surface.get_size() | |||
| return self | |||
| def init(self): | |||
| if self._init == False: | |||
| self._init = True | |||
| pygame.init() | |||
| self._display_surface = pygame.display.set_mode(self._resolution, pygame.HWSURFACE | pygame.DOUBLEBUF) | |||
| self.set_mode(self._resolution, self._display_flags) | |||
| return self | |||
| def close(self): | |||
| pygame.quit() | |||
| FLAG_SWSURFACE = pygame.SWSURFACE | |||
| FLAG_HWSURFACE = pygame.HWSURFACE | |||
| FLAG_HWPALETTE = pygame.HWPALETTE | |||
| FLAG_DOUBLEBUF = pygame.DOUBLEBUF | |||
| FLAG_FULLSCREEN = pygame.FULLSCREEN | |||
| FLAG_OPENGL = pygame.OPENGL | |||
| FLAG_RESIZABLE = pygame.RESIZABLE | |||
| FLAG_NOFRAME = pygame.NOFRAME | |||