GdkGLContext

说明 [src]

abstract class Gdk.GLContext : Gdk.DrawContext
{
  /* No available fields */
}

GdkGLContext 是一个表示特定于平台的 OpenGL 绘制上下文的对象。

GdkGLContext 是使用 gdk_surface_create_gl_context() 为的表面创建的,并且上下文的特点将与该表面的特点相符。

GdkGLContext 不与任何特定普通帧缓冲区相关联。例如,它不能绘制到表面的后缓冲区。

GdkGLContext 的支持是特定于平台的,并且可能导致上下文创建失败,返回 NULL 上下文。

GdkGLContext 必须"当前",才能开始使用它,否则会忽略任何 OpenGL 调用。

创建新 OpenGL 上下文

为了创建一个新的 GdkGLContext 实例,您需要 GdkSurface,您通常在窗口小部件的实现调用期间会获得它。

在调用 gdk_gl_context_make_current()gdk_gl_context_realize() 之前,GdkGLContext 不会被实现。可以在调用 gdk_surface_create_gl_context() 之后,通过调用 gdk_gl_context_realize() 来指定 GL 上下文的详细信息,例如要使用的 OpenGL 版本,或者是否应当在调用时启用 GL 上下文的额外状态验证。

使用 GdkGLContext

在发出 OpenGL 调用之前,您需要将 GdkGLContext 设置为当前上下文;系统将 OpenGL 命令发送到当前上下文。可以存在多个上下文,因此在发出命令之前,您始终需要确保要用来绘制的上下文是当前上下文

gdk_gl_context_make_current (context);

你现在可以使用 OpenGL 指令执行绘制。

使用 gdk_gl_context_get_current() 检查哪个 GdkGLContext 是当前的;你还可以通过调用 gdk_gl_context_clear_current() 取消设置当前的任何 GdkGLContext

层次结构

hierarchy this GdkGLContext ancestor_0 GdkDrawContext ancestor_0--this ancestor_1 GObject ancestor_1--ancestor_0

函数

gdk_gl_context_clear_current

清除当前的 GdkGLContext

gdk_gl_context_get_current

检索当前的 GdkGLContext

实例方法

gdk_gl_context_get_allowed_apis

获取通过 gdk_gl_context_set_allowed_apis() 设置的允许 API。

自:4.6

gdk_gl_context_get_api

获取当前正在使用的 API

自:4.6

gdk_gl_context_get_debug_enabled

检索上下文是否正在进行额外的验证和运行时 检查。

gdk_gl_context_get_display

检索为 context 创建的显示。

gdk_gl_context_get_forward_compatible

检索上下文是否 向前兼容。

gdk_gl_context_get_required_version

检索为 context 实现要求设置必需的 OpenGL 版本。即使在实现 context 之后支持并使用了更高版本的 OpenGL,它也不会更改。有关正在使用的实际版本,请参阅 gdk_gl_context_get_version()

gdk_gl_context_get_shared_context

用于检索 context 共享数据的 GdkGLContext

已弃用:4.4 

gdk_gl_context_get_surface

检索 context 使用的表面。

gdk_gl_context_get_use_es

检查 context 是否使用 OpenGL 或 OpenGL ES 配置。

gdk_gl_context_get_version

检索 context 的 OpenGL 版本。

gdk_gl_context_is_legacy

GdkGLContext 是否处于遗留模式。

gdk_gl_context_is_shared

检查两个 GL 上下文是否可以共享 资源。

自:4.4

gdk_gl_context_make_current

context 设置为当前的。

gdk_gl_context_realize

实现给定的 GdkGLContext

gdk_gl_context_set_allowed_apis

设置允许的 API。调用 gdk_gl_context_realize() 时,将只尝试允许的 API。如果你将此设置为 0,则实现总是会 失败。

自:4.6

gdk_gl_context_set_debug_enabled

设置 GdkGLContext 是否应执行额外的验证和运行时 检查。

gdk_gl_context_set_forward_compatible

设置 GdkGLContext 是否应 向前兼容。

gdk_gl_context_set_required_version

设置要请求的 OpenGL 主版本和次版本。

gdk_gl_context_set_use_es

请求 GDK 创建 OpenGL ES 上下文,而不是 OpenGL 上下文。

GdkDrawContext 继承的方法 (6)
gdk_draw_context_begin_frame

指示你开始在 context 的表面上重新绘制 region

已弃用:4.16 

gdk_draw_context_end_frame

结束使用 gdk_draw_context_begin_frame() 开始的绘制操作。

已弃用:4.16 

gdk_draw_context_get_display

检索为 context 创建的 GdkDisplay

gdk_draw_context_get_frame_region

检索当前正在 重新绘制的区域。

已弃用:4.16 

gdk_draw_context_get_surface

检索 `context` 所绑定的曲面。

gdk_draw_context_is_in_frame

如果 `context` 正在绘制到其曲面,则返回 `TRUE`。

已弃用:4.16 

GObject (43) 继承的方法

有关方法的完整列表,请参见 GObject

属性

Gdk.GLContext:allowed-apis

允许的 API。

自:4.6

Gdk.GLContext:api

当前正在使用的 API

自:4.6

Gdk.GLContext:shared-context

总是为 `NULL`。

已弃用:4.4 

GdkDrawContext (2) 继承的属性
Gdk.DrawContext:display

用于创建 `GdkDrawContext` 的 `GdkDisplay`。

Gdk.DrawContext:surface

上下文所绑定的 `GdkSurface`。

信号

GObject (1) 继承的信号
GObject::notify

当对象的某个属性通过 g_object_set_property()、g_object_set() 等方法设置其值时,将针对该对象发出 notify 信号。