设备

类设备()

class cairo.Device

A Device 表示用于将操作绘制到 Surface .

在 1.14 版本加入.

备注

在 1.17.0 版本加入: cairo.Device 可以用作上下文管理器:

# device.finish() will be called on __exit__
with cairo.ScriptDevice(f) as device:
    pass
finish() None

此函数完成设备并删除对外部资源的所有引用。为该设备创建的所有表面、字体和其他对象也将完成。设备上的进一步操作不会影响设备,而是会触发 Status.DEVICE_FINISHED 错误。

此功能可以获取设备。

在 1.14 版本加入.

flush() None

完成设备的任何挂起操作,并还原cairo对设备状态所做的任何临时修改。在从使用cairo设备切换到直接使用本机API操作之前,必须调用此函数。如果设备不支持直接访问,则此功能不起作用。

此功能可以获取设备。

在 1.14 版本加入.

acquire() None
抛出:

cairo.Error -- 如果设备处于错误状态且无法获取。

获取当前线程的设备。此函数将一直阻塞,直到没有其他线程获得设备为止。

如果不提升,则成功获取设备。从现在开始,您的线程拥有该设备,只有在匹配调用 release() . 允许从同一线程递归获取设备多次。

成功呼叫后 acquire() ,匹配的呼叫 release() 是必需的。

备注

除非明确允许,否则不能同时获取两个不同的设备。否则就存在死锁的可能性。由于各种cairo函数可以在调用时获取设备,因此当您使用所获取的设备调用它们时,这些函数也可能导致死锁。因此,在调用它们时,不能获取设备。这些功能在文档中进行了标记。

在 1.14 版本加入.

release() None

释放以前使用 acquire() . 有关详细信息,请参阅该函数。

在 1.14 版本加入.

类脚本设备 (Device

class cairo.ScriptDevice(fobj: cairo._FileLike | cairo._PathLike)

在 1.14 版本加入.

__init__(fobj: cairo._FileLike | cairo._PathLike) None
参数:

fobj -- 文件名或可写文件对象。

创建用于发出脚本的输出设备,在创建单个曲面时使用。

set_mode(mode: ScriptMode) None
参数:

mode -- 新模式

更改脚本的输出模式

get_mode() ScriptMode
返回:

脚本的当前输出模式

查询脚本的当前输出模式。

write_comment(comment: str) None
参数:

comment -- 要发出的字符串

在脚本中逐字地发出字符串。

from_recording_surface(recording_surface: RecordingSurface) None
参数:

recording_surface -- 要重放的记录面

抛出:

cairo.Error --

将录制表面中的录制操作转换为脚本。