我想使用 Python 和 PySDL2 将 SDL2 Window 的全部内容反映在它的垂直轴或水平轴中的一个或两个上。
到目前为止,我可以把它带到这里:
# window is an SDL_Window object created at runtime
screen_px = sdl2.ext.pixels2d(window.get_surface())
flipped = numpy.fliplr(screen_px)
screen_x_y = [1920, 1080] # using flipped.shape also threw a seg fault
flipped_surf = numpy.zeros(screen_x_y)
flipped_surf[:] = flipped
然后我使用借来的blit()
函数(使用 OpenGL 绘制到 SDL_WINDOW 对象)flipped_surf
在调用 SDL 之前进入窗口window.swap()
。
这似乎可以工作(它肯定会产生预期的翻转像素数组),但是当我尝试blit()
此代码时会抛出一个segmentation fault: 11
(我在 OS X 上,以防万一),并发出来自 pysdl2 的警告ExperimentalWarning: 'pixels2d' is in an experimental state.
我对任何实现这一目标的解决方案都非常开放,都是一样的。