函数

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 内容。

它采用一个渲染缓冲 IDsource_type == GL_RENDERBUFFER)或纹理 ID(source_type == GL_TEXTURE),使用 OVER 操作将它绘制至 cr,并考虑当前裁剪。由 xywidthheight 指定的矩形的左上角将绘制在 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

要绘制的区域的高度。