|
- '''
- Filename display.py
- Author: Bryan "ObsidianBlk" Miller
- Date Created: 8/1/2018
- Python Version: 3.7
- '''
- import pygame
-
- class Display:
- def __init__(self, width=640, height=480):
- self._init = False
- 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):
- return self._display_surface
-
- @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.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
-
-
-
|