跳到主要内容

Renderers

C++ runtime 可以通过 Rive renderer 将内容绘制到多种图形 API。你可以根据平台选择 Metal、Vulkan、D3D11、D3D12 或 OpenGL / WebGL backend。

支持的 backend

Backend典型平台说明
MetalmacOS / iOSApple 平台的现代 GPU API
VulkanWindows / Linux / Android跨平台现代 GPU API
D3D11WindowsDirect3D 11 backend
D3D12WindowsDirect3D 12 backend
OpenGL / WebGL桌面 / Web兼容性更广的 GL backend

RenderContext

每个 backend 通常会提供对应的 RenderContext 实现。RenderContext 负责管理 GPU 资源、frame lifecycle 和命令提交。

// 伪代码:实际类型与构造参数取决于 backend
std::unique_ptr<rive::gpu::RenderContext> renderContext =
rive::gpu::RenderContext::Make(...);

RiveRenderer

RiveRenderer 是把 Rive 绘制命令转换为 backend 命令的对象。通常你会在每帧中使用它绘制 artboard。

renderer->save();
renderer->align(rive::Fit::contain, rive::Alignment::center,
viewport, artboard->bounds());
artboard->draw(renderer);
renderer->restore();

何时使用自定义 Renderer?

如果官方 backend 不能满足你的需求,或者你已经有自己的矢量渲染 / GPU 抽象层,可以实现自定义 renderer。更多信息请参阅外部 Renderer