关于Raspberry Pi的Kivy:将提供商从EGL改为SDL2?

时间:2016-04-26 14:11:29

标签: python kivy raspberry-pi3

在我的Raspberry Pi上运行Kivy应用程序给我一个这样的输出:

[INFO   ] [Logger      ] Record log in /home/pi/.kivy/logs/kivy_16-04-26_23.txt
[INFO   ] [Kivy        ] v1.9.2-dev0
[INFO   ] [Python      ] v2.7.9 (default, Mar  8 2015, 00:52:26)
[GCC 4.9.2]
[INFO   ] [Factory     ] 193 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_gif, img_pygame, img_pil (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: pygame
[INFO   ] [Window      ] Provider: egl_rpi
[INFO   ] [GL          ] OpenGL version <OpenGL ES 2.0>
[INFO   ] [GL          ] OpenGL vendor <Broadcom>
[INFO   ] [GL          ] OpenGL renderer <VideoCore IV HW>
[INFO   ] [GL          ] OpenGL parsed version: 2, 0
[INFO   ] [GL          ] Shading version <OpenGL ES GLSL ES 1.00>
[INFO   ] [GL          ] Texture max size <2048>
[INFO   ] [GL          ] Texture max units <8>
[INFO   ] [Shader      ] fragment shader: <Compiled>
[INFO   ] [Shader      ] vertex shader: <Compiled>
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [OSC         ] using <multiprocessing> for socket
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available

但是,没有窗口启动。请注意Provider: egl_rpi

在我的Windows Kivy中,提供者是SDL2。此外,我可以使用SDL作为Raspberry Pi上的提供程序启动示例mp3视频:

sudo SDL_VIDEODRIVER=fbcon SDL_FBDEV=/dev/fb1 mplayer -vo sdl -framedrop test.mpg

我的问题是:如何在Pi上将提供商更改为SDL2 for Kivy?

1 个答案:

答案 0 :(得分:2)

将以下代码行添加到Python文件的顶部应该将提供程序切换为sdl2

import os
os.environ['KIVY_WINDOW'] = 'sdl2'

参考:here

我遇到与您相同的问题,egl_rpi没有显示任何窗口。我切换到SDL2,但应用程序无法加载。我相信这是因为我的3.5&#34; SPI显示。也许你的视频驱动程序会更好运。