pyglet.gl
OpenGL接口。
此包导入所有OpenGL和已注册的OpenGL扩展函数。函数具有与C语言对应函数相同的签名。
OpenGL的完整文档请参阅 OpenGL Reference Pages 。
这个 OpenGL Programming Guide 也被称为《红皮书》,是一本按主题组织的流行参考手册。它有数字版和纸质版。
以下子程序包已经导入到这个“巨型”程序包中(因此可以通过导入 pyglet.gl
):
pyglet.gl.gl
OpenGL
pyglet.gl.gl.glext_arb
Arb注册的OpenGL扩展函数
pyglet.gl.gl.gl_compat
已废弃的GL扩展功能。
这些子包也可用,但默认情况下不会导入到此命名空间:
pyglet.gl.glext_nv
NVIDIA OpenGL扩展功能
pyglet.gl.agl
AGL(Mac OS X OpenGL上下文函数)
pyglet.gl.glx
GLX(Linux OpenGL上下文函数)
pyglet.gl.glxext_arb
Arb寄存器GLX扩展函数
pyglet.gl.glxext_nv
NVIDIA GLX扩展功能
pyglet.gl.wgl
WGL(Windows OpenGL上下文函数)
pyglet.gl.wglext_arb
Arb注册的WGL扩展函数
pyglet.gl.wglext_nv
NVIDIA WGL扩展功能
提供这些信息模块是为了方便起见,并在下面进行了说明。
- exception ConfigException
- exception ContextException
- current_context: Context | None = None
活动的OpenGL上下文。
您可以通过调用 Context.set_current ;请勿修改此全局设置。
Added in version 1.1.
- class Config
显卡配置。
配置存储OpenGL属性的首选项,例如辅助缓冲区的数量、颜色和深度缓冲区的大小、双缓冲区、模版、多采样和超采样等。
不同的平台支持不同的属性集,因此使用字符串键和整型或布尔型的值来设置这些属性。
- __init__(**kwargs: float) None
使用给定属性创建模板配置。
将属性指定为关键字参数,例如::
template = Config(double_buffer=True)
- get_gl_attributes() list[tuple[str, bool | int | str]]
返回在此配置上设置的属性列表。
属性作为二元组列表返回,其中包含名称和值。任何未设置的属性的值都将为
None
。
- is_complete() bool
确定此配置是否完整并且能够创建上下文。
直接创建的配置并不完整,它们只能用作从系统检索支持的配置的模板。例如, pyglet.window.Screen.get_matching_configs 返回完整的配置。
- 弃用:
使用
isinstance(config, CanvasConfig)
。- 返回类型:
- abstract match(
- canvas: Canvas,
返回给定画布的匹配完整配置的列表。
- 返回类型:
- class CanvasConfig
基类:
Config
特定画布的OpenGL配置。
使用
Config.match
若要获取此类的实例,请执行以下操作。Added in version 1.2.
- class Context
用于绘制的基本GL上下文。
使用
CanvasConfig.create_context
要创建上下文,请执行以下操作。- __init__(
- config: CanvasConfig,
- context_share: Context | None = None,
初始化上下文。
这只能通过
CanvasConfig.create_context
方法。- 参数:
config (
CanvasConfig
) -- 操作系统特定的配置。
- create_program( ) ShaderProgram
从OpenGL GLSL源创建一个ShaderProgram。
这是一个很方便的方法,它接受(SOURCE_STRING,SHADER_TYPE)的一个或多个元组,并返回一个
ShaderProgram
举个例子。source_string
is OpenGL GLSL source code as a str, andshader_type
is the OpenGL shader type, such as "vertex" or "fragment". SeeShader
for more information. :rtype:ShaderProgram
备注
此方法被缓存。在给定相同着色器来源的情况下,将返回相同的ShaderProgram实例。为了更好地控制ShaderProgram生命周期,建议手动创建着色器并链接ShaderProgram。
Added in version 2.0.10.
- delete_buffer(buffer_id: int) None
安全地删除属于此上下文对象空间的缓冲区。
此方法的行为类似于
delete_texture
,但对于glDeleteBuffers
而不是glDeleteTextures
。- 返回类型:
- delete_framebuffer(fbo_id: int) None
安全删除属于此上下文的FrameBuffer对象。
此方法的行为类似于
delete_vao
,但对于glDeleteFramebuffers
而不是glDeleteVertexArrays
。- 返回类型:
- delete_renderbuffer(rbo_id: int) None
安全删除属于此上下文对象空间的渲染缓冲区。
此方法的行为类似于
delete_texture
,但对于glDeleteRenderbuffers
而不是glDeleteTextures
。- 返回类型:
- delete_shader(shader_id: int) None
安全删除属于此上下文对象空间的着色器。
此方法的行为类似于
delete_texture
,但对于glDeleteShader
而不是glDeleteTextures
。- 返回类型:
- delete_shader_program(program_id: int) None
安全删除属于此上下文对象空间的ShaderProgram。
此方法的行为类似于
delete_texture
,但对于glDeleteProgram
而不是glDeleteTextures
。- 返回类型:
- delete_texture(texture_id: int) None
安全地删除属于此上下文的对象空间的纹理。
此方法将通过以下方式立即删除纹理
glDeleteTextures
如果当前上下文的对象空间与此上下文的对象空间相同,并且从主线程调用它。否则,纹理将仅标记为删除,并将其推迟,直到具有相同对象空间的任何上下文再次变为活动状态。
这使得从任何地方调用都是安全的,包括其他线程。
- 返回类型:
- delete_vao(vao_id: int) None
安全删除属于此上下文的顶点数组对象。
如果此上下文不是当前上下文,或者此方法不是从主线程调用的,则其删除将被推迟,直到此上下文下一次被再次激活。
否则,该方法会立即通过
glDeleteVertexArrays
。- 返回类型:
- get_info() GLInfo
vt.得到.
GLInfo
在此背景下的例子。- 返回类型:
GLInfo
- set_current() None
使其成为活动上下文。
将上下文设置为当前还将删除任何已排队等待删除的GL对象。IE:在此上下文中创建,但在另一个上下文处于活动状态时被要求删除的任何对象。
- 返回类型:
-
config:
CanvasConfig
-
object_space:
ObjectSpace
在共享GL对象的所有上下文之间共享的容器。