用于moderngl的跨平台助手库,使窗口创建和资源加载变得简单

moderngl-window的Python项目详细描述


pypi

现代化窗口

ModernGL的支持库 使程序员更高效,并确保跨平台支持。

功能

  • 跨平台支持。在Windows10、Linux和MacOSX上测试。 这可以节省用户很多时间,而且往往比大多数人想象的要困难。
  • 使用pyglet、pyside2、glfw、sdl2或pyqt5支持基本键盘和鼠标控件,轻松创建moderngl窗口。这些事件被统一到一个系统中,因此我们可以在任何时间点切换到任何窗口。
  • 加载二维纹理和纹理阵列
  • 作为单个或多个glsl文件加载着色器
  • 从wavefront/obj、gltf 2.0或stl加载对象/场景
  • 支持多个资源目录的资源查找系统
  • 一个高度可插入的库,支持自定义加载程序, 资源查找器和窗口。
  • 在任何地方键入提示,使代码完成和linting变得轻而易举

我们不想强迫用户使用这个 图书馆。如果你有一个退出项目,只需要纹理加载 只要你能做到这一点 你提供给我们你的moderngl.Context

安装

pip install moderngl-window

支持的平台

  • [X]窗口
  • [X]Linux
  • [X]Mac OS X

示例用法

简单的例子打开一个窗口清除每一帧使用红色(颜色)。

importmoderngl_windowasmglwclassTest(mglw.WindowConfig):gl_version=(3,3)def__init__(self,**kwargs):super().__init__(**kwargs)defrender(self,time,frametime):self.ctx.clear(1.0,0.0,0.0,0.0)mglw.run_window_config(Test)

WindowConfig类是不知道就开始的最简单方法 很多关于这个图书馆的事。有关更高级的用法,请参阅文档 或是例子。

从源设置

我们假设用户知道如何处理vitrualenvs。

# Install the package in editable mode
$ pip install -e .

# Set up and dev requirements
pip install -r requirements.txt
pip install -r tests/requirements.txt

运行测试

设置测试时,tox使用coverate和flake8运行pytest。

pip install -r tests/requirements.txt
tox

贡献

无论经验如何,我们都欢迎您的贡献。 毫不犹豫地提交问题,打开部分或完成 拉取请求。

插件

我们对提供新的装载机、窗户等感兴趣。 为了让这些包含在这个库中,我们需要它们 跨平台工作(win10/linux/osx)并且设置起来相当容易。

如果需要手动下载预编译的dll (如SDL2、Glew等)很可能不包括在内, 但如果你认为你的案子应该 包括在内。

如果您创建自己的repo/包,其中包含 这个图书馆,请发表一篇文章,我们会链接回去的。 确保包含支持的平台,安装 说明,如何在moderngl_window中配置 当然,要清楚而简明地描述 你的包裹提供了。

属性

我们不能从头开始。我们依赖某些包裹 以及使这个项目成为可能的资源。

窗口

装载机

测试和实用程序

一些历史记录

这个库中的大多数代码来自demosys-py(有点修改)。 因为demosys-py是一个框架,我们决定将许多有用的功能分解成 图书馆。框架对用户的吸引力要小得多,如果不这样做就太可惜了 更适合现代用户群。

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

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务