При игре с sdl2 через pysdl2 я заметил этот странный побочный эффект, когда однажды скрипт sdl запускает несвязанные окна, которые обычно становятся прозрачными при перемещении, теперь остаются непрозрачными.
Я бы не возражал против всего этого, если бы не было ноющее чувство, что это означает, что я делаю что-то в корне неправильно.
Кто-нибудь может просветить меня о том, что, черт возьми, здесь происходит?
Вот мой сценарий:
import sdl2
import sdl2.ext as se
import time
def main():
k = 2
event_buffer = (k * sdl2.SDL_Event)()
se.init()
window = se.Window("what the ?", size=(400, 300))
window.show()
while True:
window.refresh()
time.sleep(0.01)
sdl2.SDL_PumpEvents()
sdl2.SDL_PeepEvents(event_buffer, k, sdl2.SDL_GETEVENT,
sdl2.SDL_FIRSTEVENT, sdl2.SDL_LASTEVENT)
for event in event_buffer:
if not event.type:
continue
elif event.type == sdl2.SDL_QUIT:
se.quit()
break
else:
pass
event.type = 0
else:
continue
break
if __name__ == '__main__':
main()
И вот захват экрана до и после:
В окне "Системные настройки" моего рабочего стола KDE 5.45.0
без запущенного сценария sdl отображаются соответствующие настройки " Effects>Translucency
рабочего стола" Effects>Translucency
. Обратите внимание, как окно полупрозрачно, потому что я перетаскиваю его во время съемки.
То же самое, но с запущенным сценарием sdl. Обратите внимание, что окно, несмотря на то, что я энергично его перетаскиваю, остается упрямо непрозрачным.