Pysdl2在Windows 7上找不到directx



我最近设法让pysdl2(0.9.3)在Windows 8.1(64位)机器上运行(以及扩展模块gfx、mixer、ttf和image)。一切都很好,包括pysdl2示例文件夹中的所有演示。

然而,当我尝试在Windows7(64位)上使用相同的SDL2 DLL版本运行相同的代码时,我会收到错误消息:

sdl2.ext.common.SDLrror: 'directx not available'

调用后

sdl2.ext.init()

我尝试安装Directx最终用户运行时(2010年6月),甚至是完整的SDK,但都没有成功。我还尝试将SDL_VIDEODRIVER环境变量更改为directx以外的其他变量,但这也不起作用(显然"windib"在SDL2中不再可用)。

我知道SDL2可能正在寻找Directx 9,它现在已经被Directx 11完全取代了,但在安装了最终用户运行时之后,我的系统应该可以再次使用Directx 9。此外,如果这是问题的原因,那么它也不应该在Windows 8.1上工作,因为这个操作系统更新,更不可能携带DX9?

编辑:顺便说一句,pygame(使用旧的SDL1.2库)能够找到directx作为

pygame.display.get_driver()

输出:

'directx'

所以SDL2库的内部配置肯定有问题。

我在Windows XP上遇到了同样的错误directx not available,并通过使用将环境变量SDL_VIDEODRIVER设置为windows来解决它

set SDL_VIDEODRIVER=windows 

在启动Python模块之前,请在命令提示符下单击。您也可以使用直接从Python中执行此操作

os.environ['SDL_VIDEODRIVER'] = 'windows'

请注意,windows是SDL2中唯一支持的Windows驱动程序。CCD_ 5和CCD_ 6仅对SDL1.2有效。

我遇到这个问题是因为我正在导入Pygame和PySDL2。事实证明,Pygame模块(使用SDL1.2)在导入时将SDL_VIDEODRIVER更改为directx

相关内容

  • 没有找到相关文章

最新更新