CGL:OpenGL的标准C接口

Kivy 使用 OpenGL,因此需要一个提供该功能的底层后端。所使用的后端由编译时变量 USE_OPENGL_MOCKUSE_SDL2 以及运行时环境变量 KIVY_GL_BACKEND 控制。

目前,OpenGL 通过直接链接(gl/glew)、sdl2 或模拟方式使用。设置 USE_OPENGL_MOCK 会禁用 gl/glew。同样,将 USE_SDL2 设为 0 将禁用 sdl2。模拟方式始终可用。

运行时,以下后端可用,并可通过 KIVY_GL_BACKEND 进行设置:

  • gl —— 在 Unix 上可用(默认后端)。当 USE_OPENGL_MOCK=0 时不可用。需要安装 gl。

  • glew -- 在Windows上可用(默认后端)。当``USE_OPENGL_MOCK=0``时不可用。需要安装glew。

  • sdl2 -- 在 Windows/unix 上可用(当 gl/glew 被禁用时的默认选项)。当 USE_SDL2=0 时不可用。需要安装 kivy_deps.sdl2

  • angle_sdl2 -- 在Windows上,Python 3.5及以上版本可用。当``USE_SDL2=0``时不可用。需要安装``kivy_deps.sdl2``和``kivy_deps.angle``。

  • mock -- 始终可用。实际上不执行任何操作。

此外,以下环境运行时变量控制图形系统:

  • KIVY_GL_DEBUG -- 当设置为 1 时,记录所有 OpenGL 调用。

  • KIVY_GRAPHICS -- 当值为 gles 时强制使用 OpenGL ES2。在 Android、iOS、RPi 和 Mali 操作系统上始终使用 OpenGL ES2。

kivy.graphics.cgl.cgl_get_backend_name(allowed=[], ignored=[])
kivy.graphics.cgl.cgl_get_initialized_backend_name()
kivy.graphics.cgl.cgl_init(allowed=[], ignored=[])