glfw3的基于cTypes的包装器。
glfw的Python项目详细描述
此模块为GLFW提供python绑定 (在github上:glfw/glfw)。它是一个 ctypeswrapper非常接近原始glfw api, 除了:
- 函数名使用pythonicwords_with_underscores表示法 而不是camelCase
- GLFW_和glfw前缀已被删除,作为它们的函数 被模块命名空间替换 (如果您喜欢命名,可以使用from glfw.GLFW import *。 glfw c api使用的约定)
- 结构已被python序列和namedtuples替换
- 像glfwGetMonitors这样的函数返回一个列表而不是一个指针 以及一个对象计数
- gamma渐变使用介于0.0和1.0之间的浮点数,而不是无符号短音符 (使用glfw.NORMALIZE_GAMMA_RAMPS=False禁用此功能)
- 如果没有错误,glfw错误将报告为glfw.GLFWError异常 已设置回调(使用glfw.ERROR_REPORTING=False禁用此功能)
- 不是GLFWimage结构的序列,而是pil/枕头Image 可以使用对象
安装
pyglfw可以使用pip安装:
pip install glfw
linux和macos
您需要自己安装glfw共享库,并且应该 compile GLFW from source (使用-DBUILD_SHARED_LIBS=ON)。
pyglfw将在搜索路径列表中搜索库(包括 在Linux上是LD_LIBRARY_PATH,在MacOS上是DYLD_LIBRARY_PATH。如果你 要使用特定的库,可以设置PYGLFW_LIBRARY环境 路径变量。
示例代码
从GLFW documentation移植到 PYGLFW:
importglfwdefmain():# Initialize the libraryifnotglfw.init():return# Create a windowed mode window and its OpenGL contextwindow=glfw.create_window(640,480,"Hello World",None,None)ifnotwindow:glfw.terminate()return# Make the window's context currentglfw.make_context_current(window)# Loop until the user closes the windowwhilenotglfw.window_should_close(window):# Render here, e.g. using pyOpenGL# Swap front and back buffersglfw.swap_buffers(window)# Poll for and process eventsglfw.poll_events()glfw.terminate()if__name__=="__main__":main()