C++ Runtime
Rive C++ runtime(rive-cpp)是 Rive 最底层的 runtime。它可以加载 .riv 文件、推进状态机和动画,并绘制到任意 Renderer:既可以是 Rive renderer(Metal、Vulkan、D3D11、D3D12、OpenGL/WebGL),也可以是你自己的实现。
更高层的 Rive runtime(Apple、Android、Flutter、Unity、Unreal)都会封装这个库。
当你有以下需求时,可以使用 C++ runtime:
- 在 C++ 应用或游戏引擎中嵌入 Rive。
- 面向还没有 Rive runtime 的平台。
- 将 Rive 接入你自己的 renderer 或 render graph。
文档导航
- 入门:构建 runtime,并用不到 100 行代码把
.riv文件显示到屏幕上。 - Renderers:为你的平台接入 GPU backend,例如 D3D11、D3D12、Metal、Vulkan 或 GL。
- File & Artboard:导入
.riv文件、查询画板,并创建ArtboardInstance。 - State Machines:推进场景、转发指针事件,并响应状态变化。
- Data Binding:用应用状态驱动 Rive
ViewModel。 - Asset Loading:通过
FileAssetLoader解析 out-of-band 图片、字体和音频。 - Rendering Loop:理解每帧中的
beginFrame/flush流程及其成本。 - External Renderer:实现
Renderer与Factory,使用自己的 GPU backend。
架构速览

File / Artboard / StateMachineInstance 不知道任何 GPU 细节,而 Renderer / RenderContext 也不知道 Rive 内容本身。两部分都可以单独工作:你既可以通过自己的 Renderer 实现来渲染 Rive 内容,也可以用非 Rive 的绘制命令驱动 RiveRenderer。
支持的平台与 API
| Backend | Headers | Class |
|---|---|---|
| D3D11 | rive/renderer/d3d11/render_context_d3d_impl.hpp | RenderContextD3DImpl |
| D3D12 | rive/renderer/d3d12/render_context_d3d12_impl.hpp | RenderContextD3D12Impl |
| Metal | rive/renderer/metal/render_context_metal_impl.h | RenderContextMetalImpl |
| Vulkan | rive/renderer/vulkan/render_context_vulkan_impl.hpp | RenderContextVulkanImpl |
| OpenGL / WebGL | rive/renderer/gl/render_context_gl_impl.hpp | RenderContextGLImpl |
源码与许可证
- GitHub:rive-app/rive-runtime
- License:MIT
- 构建系统:premake5