Ik probeer een kleine front-end voor xmame te maken in Python, met behulp van pygame & SDL (op Ubuntu). De bedoeling is om deze front-end uiteindelijk in een zelfgemaakte arcade kast (op fullscreen uiteraard) te laten draaien.
Ik loop nu tegen het probleem aan dat, wanneer de front-end in fullscreen draait, het programma dat gestart wordt (xmame) niet op de voorgrond kan komen. Het resultaat is een geheel zwart scherm. Het lijkt dus wel alsof zowel de front-end als xmame worstelen om fullscreen te mogen draaien, en dat ze beide verliezen
Ik heb nu een workaround toegepast waarbij vlak vóórdat xmame wordt opgestart, de front-end _niet_ meer fullscreen wordt gemaakt. Zodra xmame is afgelopen wordt de front-end echter weer fullscreen. Dit werkt op zich wel, met één nadeel: in de tussentijd (voordat xmame kan opstarten en fullscreen kan worden) wordt het venster en de desktop volledig zichtbaar. Voor een arcade kast is dit natuurlijk niet zo heel erg mooi.
Ik heb mijn code teruggebracht tot een klein voorbeeld fragment om het wat duidelijker te maken:
Heeft iemand een oplossing/workaround voor dit probleem?
Ik loop nu tegen het probleem aan dat, wanneer de front-end in fullscreen draait, het programma dat gestart wordt (xmame) niet op de voorgrond kan komen. Het resultaat is een geheel zwart scherm. Het lijkt dus wel alsof zowel de front-end als xmame worstelen om fullscreen te mogen draaien, en dat ze beide verliezen
Ik heb nu een workaround toegepast waarbij vlak vóórdat xmame wordt opgestart, de front-end _niet_ meer fullscreen wordt gemaakt. Zodra xmame is afgelopen wordt de front-end echter weer fullscreen. Dit werkt op zich wel, met één nadeel: in de tussentijd (voordat xmame kan opstarten en fullscreen kan worden) wordt het venster en de desktop volledig zichtbaar. Voor een arcade kast is dit natuurlijk niet zo heel erg mooi.
Ik heb mijn code teruggebracht tot een klein voorbeeld fragment om het wat duidelijker te maken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| #! /usr/bin/env python
import pygame, sys, os
from pygame.locals import *
#
# Create a SDL window.
#
pygame.init()
window = pygame.display.set_mode ((1024, 768), FULLSCREEN)
screen = pygame.display.get_surface()
pygame.mouse.set_visible (0)
#
# Put everything on the screen.
#
def updateDisplay():
font = pygame.font.Font (None, 24)
text = font.render ("Press any key to do something or ESC to quit.", True, (255,255,255))
screen.blit (text, text.get_rect())
pygame.display.flip()
#
# Start another app.
#
def doSomething():
# Disable fullscreen.
pygame.display.set_mode ((1024, 768))
# Start XMAME
os.system ("xmame -rompath /path/to/roms -fullscreen sf2.zip")
# Enable fullscreen
pygame.display.set_mode ((1024, 768), FULLSCREEN)
updateDisplay()
#
# Main Loop - Process all events.
#
updateDisplay()
while True:
for event in pygame.event.get():
if (event.type == QUIT):
sys.exit(0)
elif (event.type == KEYDOWN):
if (event.key == K_ESCAPE):
exit(0)
else:
doSomething() |
Heeft iemand een oplossing/workaround voor dit probleem?