So I was using a Pi 2 to run this code allowing me to run pygame from the terminal without starting the desktopit is from adafruit: https://learn.adafruit.com/pi-video-out ... ramebuffer and it works perfectly on my Pi2 but will not work on my new pi 5. all I can think is i'm missing some library or config, I have been at this for a few hours and still have no better idea, can anyone help?
Code:
import osimport pygameimport timeclass pyscope: screen = None; def __init__(self): "Ininitializes a new pygame screen using the framebuffer" # Based on "Python GUI in Linux frame buffer" # http://www.karoltomala.com/blog/?p=679 # Allow running from ssh os.putenv("DISPLAY", ":0") disp_no = os.getenv("DISPLAY") if disp_no: print("I'm running under X display = {0}".format(disp_no)) # Check which frame buffer drivers are available # Start with fbcon since directfb hangs with composite output drivers = ['x11', 'fbcon', 'directfb', 'svgalib'] found = False for driver in drivers: # Make sure that SDL_VIDEODRIVER is set if not os.getenv('SDL_VIDEODRIVER'): os.putenv('SDL_VIDEODRIVER', driver) try: pygame.display.init() except pygame.error: print("Driver: {0} failed.".format(driver)) continue found = True break if not found: raise Exception('No suitable video driver found!') size = (pygame.display.Info().current_w, pygame.display.Info().current_h) print("Framebuffer size: %d x %d" % (size[0], size[1])) self.screen = pygame.display.set_mode(size, pygame.FULLSCREEN) # Clear the screen to start self.screen.fill((0, 0, 0)) # Initialise font support pygame.font.init() # Render the screen pygame.display.update() def __del__(self): "Destructor to make sure pygame shuts down, etc." def test(self): # Fill the screen with red (255, 0, 0) red = (255, 0, 0) self.screen.fill(red) # Update the display pygame.display.update()# Create an instance of the PyScope classscope = pyscope()scope.test()time.sleep(10)
Statistics: Posted by radcom123 — Sun Apr 14, 2024 9:32 pm — Replies 3 — Views 88