oogli是一个漂亮的面向对象图形库接口

oogli的Python项目详细描述


奥格利

Build StatusPyPI versionStatusPython CompatibilityDownloadsCoverage Status

奥格利很漂亮

用python编写的面向对象图形库接口

动机:

我对制作易读和 理解opengl代码。这个小图书馆有助于消除 opengl的api中固有的样板。oogli大大简化了 接口,同时仍提供对底层glfw3和 opengl api。

许可证:

此软件包作为Apache2.0许可证发布。

但是,您可以选择应用任何OSI批准的免费软件 您选择的许可证,前提是您遵守自由软件许可证 选择并另外遵循以下标准:

  1. 列出此软件的作者姓名作为 最终产品
  2. 向产品或软件的最终用户提供信用 您的最终用户要求您从何处获得软件
  3. 通知此软件的作者您正在使用此软件
  4. 如果你相信提供你的改变会有一些好处 在上游,您将提交一个更改请求。而这个标准是 完全可以选择,请考虑不要做一个混蛋。

安装:

oogli的设计考虑了glfw-cffi,并使用了 GLFW-CFFI公司。此外,oogli使用numpy。

通过PIP安装

通过pip install oogli安装。

通过PIP

安装GLFW-CFFI

通过pip install glfw-cffi安装。

通过pip

安装numpy

通过pip install numpy安装。

安装glfw3

GLFW3可用于多种不同的平台:

  • ubuntu/debian:sudo apt-get install -ylibglfw3-dev
  • 软呢帽/红帽:^{TT5}$
  • 带自制程序的Mac OS X:^{TT6}$
  • windows:有一个可用的安装程序64-bit Windows32-bit Windows

glfw3是相对较新的,所以一些较旧的linux安装可能不会 直接提供libglfw。你可以看看 travis.yml github repo中的文件,以获取有关在旧版本上安装的详细信息 系统。

用法:

示例用法:

这是使用oogli生成着色三角形所需的代码:

import oogli

v_shader = '''
    #version 410
    in vec2 vertices;
    void main () {
        gl_Position = vec4(vertices, 0.0, 1.0);
    }
'''

f_shader = '''
    #version 410
    out vec4 frag_color;
    void main () {
        frag_colour = vec4(0.3, 1.0, 0.3, 1.0);
    }
'''

# Create a program from the shaders
#  Note: This will auto request an OpenGL context of 4.1
program = oogli.Program(v_shader, f_shader)

# Vertices for a 2D Triangle
triangle = [(0.0, 0.5), (-0.5, 0.5), (-0.5, -0.5)]

with oogli.Window('Oogli', 640, 480) as win:
    # Main Loop
    while win.should_run()
        # Render triangle
        program.draw(vertices=triangle)

更复杂的示例可以在 Github回购。

贡献:

欢迎捐款。打开公关时,请保留以下内容 牢记的准则:

  • 在实施之前,请提出一个问题供讨论。
  • 确保你有新逻辑的测试。
  • 确保代码通过flake8
  • 将自己添加到README.md和/或 贡献。

贡献者

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

推荐PyPI第三方库


热门话题
java打印元素按ArrayList<String>   java重新启动JSON输出   使用EOL版本Java时存在安全漏洞   java搜索并在vector中列出项目   Java与串口通信   java如何使用keytool运行测试并检查JCE是否缺失或存在?   java如何更改Json格式?   java停止缩放JPanel的背景图像   java递归方法不返回任何内容   facebook sdk中的java UiLifecycleHelper类   java将jfree条形图添加到滚动窗格中   java如何使用ApacheTiles和SpringMVC加载部分页面   javascript如何从安卓 webview读取httpbody?   java@OneToMany映射会自动删除映射的键