nopenpilot/common/window.py

41 lines
1.2 KiB
Python
Raw Normal View History

2020-01-17 11:28:44 -07:00
import sys
import pygame
from pygame.locals import *
class Window():
def __init__(self, w, h, caption="window", double=False):
self.w = w
self.h = h
pygame.init()
pygame.display.set_caption(caption)
self.double = double
if self.double:
self.screen = pygame.display.set_mode((w*2,h*2), pygame.DOUBLEBUF)
else:
self.screen = pygame.display.set_mode((w,h), pygame.DOUBLEBUF)
self.camera_surface = pygame.surface.Surface((w,h), 0, 24).convert()
def draw(self, out):
pygame.surfarray.blit_array(self.camera_surface, out.swapaxes(0,1))
if self.double:
camera_surface_2x = pygame.transform.scale2x(self.camera_surface)
self.screen.blit(camera_surface_2x, (0, 0))
else:
self.screen.blit(self.camera_surface, (0, 0))
pygame.display.flip()
def getkey(self):
while 1:
event = pygame.event.wait()
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
return event.key
def getclick(self):
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
mx, my = pygame.mouse.get_pos()
return mx, my