# Demo: Fast blitting of images via textures in GPU memory with Pygame-SDL2 in Raspian-Stretch
import os, sys, time
# allow to import pygame-sdl2 as pygame
import pygame_sdl2
pygame_sdl2.import_as_pygame()
import pygame
# force using RPI as video driver
# os.environ['SDL_VIDEODRIVER'] = 'RPI'
# initialize pygame
pygame.init()
# show current video driver
print('Using video driver: '+pygame.display.get_driver().decode('utf-8'))
# create fullscreen display
screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.NOFRAME | pygame.HWSURFACE)
# load all image files (BMP) in folder 'images' into surfaces in RAM
images = []
files = os.listdir('fotos')
for f in files:
img = pygame.image.load('fotos/'+f).convert()
images.append(img)
# blit 100 images
cnt = len(images)
t_start = time.time()
for i in range(100):
# blit next image into screen buffer
screen.blit(images[i % cnt], (0,0))
# load screen buffer into actual screen
pygame.display.flip()
# show fps
sec = time.time()-t_start
print("fps: "+str(100/sec)) # 54
# clean up
pygame.quit()