函数
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_tCairo 环境。
数据由函数的调用者拥有。 surface-
类型:
GdkSurface我们要为之渲染的表面(不一定绘制在其中)。
数据由函数的调用者拥有。 source-
类型:
int源缓冲的 GL ID。
source_type-
类型:
intsource的类型。 buffer_scale-
类型:
int为其分配
source缓冲的比例 因数。 x-
类型:
intsource中开始复制的源 X 位置,以 GL 坐标 计。 y-
类型:
intsource中开始复制的源 Y 位置,以 GL 坐标 计。 width-
类型:
int要绘制的区域的宽度。
height-
类型:
int要绘制的区域的高度。