函数
Gdkcairo_draw_from_gl
已弃用:4.6
声明 [src]
void
gdk_cairo_draw_from_gl (
cairo_t* cr,
GdkSurface* surface,
int source,
int source_type,
int buffer_scale,
int x,
int y,
int width,
int height
)
描述 [src]
主要方法不绘制 GTK 中的 GL 内容。
它采用一个渲染缓冲 ID(source_type
== GL_RENDERBUFFER)或纹理 ID(source_type
== GL_TEXTURE),使用 OVER 操作将它绘制至 cr
,并考虑当前裁剪。由 x
、y
、width
和 height
指定的矩形的左上角将绘制在 cairo_t
的当前 (0,0) 位置。
只要 surface
已实现,它就可以适用于所有 cairo_t
,但是在常规情况下可以使用软件实现,从缓冲中读取像素。但是,在不做任何特殊效果的直接绘制至表面的情况下,它将使用更高效的方法。
对于 GL_RENDERBUFFER,代码将始终针对带 alpha 组件的缓冲降级到软件,所以使用 alpha 时请务必使用 GL_TEXTURE。
调用此函数可能会更改当前 GL 环境。
自版本:4.6 起弃用
该函数过于复杂,并且在各种参数组合中会生成损坏的输出。如果您希望在 GTK 中使用 GL 纹理进行绘制,请使用 gdk_gl_texture_new()
;如果您想在 Cairo 中使用该纹理,请使用 gdk_texture_download()
将数据下载到 Cairo 图像表面。
参数
cr
-
类型:
cairo_t
Cairo 环境。
数据由函数的调用者拥有。 surface
-
类型:
GdkSurface
我们要为之渲染的表面(不一定绘制在其中)。
数据由函数的调用者拥有。 source
-
类型:
int
源缓冲的 GL ID。
source_type
-
类型:
int
source
的类型。 buffer_scale
-
类型:
int
为其分配
source
缓冲的比例 因数。 x
-
类型:
int
source
中开始复制的源 X 位置,以 GL 坐标 计。 y
-
类型:
int
source
中开始复制的源 Y 位置,以 GL 坐标 计。 width
-
类型:
int
要绘制的区域的宽度。
height
-
类型:
int
要绘制的区域的高度。