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

窗口

GLFW共享库包含在Windows的Python轮子中,但需要正确的微软Visual C++重新分配:

或者,可以从glfw.org下载为已安装在系统上的运行时生成的共享库。

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()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpringBootHibernate5忽略@Table和@Column   java readLine是如何工作的?   java除了Oracle的JVM(windows)之外,还有什么BSD许可的替代方案吗?   javascript处理程序执行导致异常:所需的MultipartFile参数“file”不存在   java如何检查url是否与标识符匹配?   java在对象创建之后实现一个接口   java安卓:如何将github库放入项目中   java如何制作自定义文本组件?   如何在java中更新属性文件   java Hibernate持久映射   JavaSpring批处理如何从postgres读取数据,然后在步骤中写入数据   java应用程序已在Android Emulator Eclipse中停止   java找不到参数[org.jetbrains.kotlin:kotlinstdlibjdk7:1.3.50]的方法实现()   java AWS DynamoDB如何从数据库中获取只有一个字段的对象   在使用ajax进行表单提交时,java无法阻止默认表单提交   集合如何在Java中定义基于两个变量进行比较的比较器   多线程基准测试Java中的多线程集合   java如何通过浏览器运行终端程序?