跳到主要内容

C++ 运行时

Rive C++ 运行时(rive-cpp)是最底层的 Rive 运行时。它可以加载 .riv 文件、推进状态机和动画,并绘制到任何 Renderer 中 — 可以是 Rive 渲染器(Metal、Vulkan、D3D11、D3D12、OpenGL/WebGL),也可以是你自己的实现

更高层级的 Rive 运行时(Apple、Android、Flutter、Unity、Unreal)都封装了这个库。

在以下场景中,请使用 C++ 运行时:

  • 在 C++ 应用程序或游戏引擎中嵌入 Rive。
  • 面向尚未提供 Rive 运行时的平台。
  • 将 Rive 接入你自己的渲染器或渲染图。

架构概览

Rive 运行时渲染管线:你的应用程序拥有一个 File(.riv 数据)和一个 RenderContext(D3D/Metal/Vulkan/...);File 生成 ArtboardInstance,ArtboardInstance 生成 StateMachineInstance,StateMachineInstance 与 RenderContext 一起传给 RiveRenderer 以生成像素。

File / Artboard / StateMachineInstance 对 GPU 一无所知,而 Renderer / RenderContext 对 Rive 内容一无所知。两部分都可以独立工作 — 你可以通过自己的 Renderer 实现来渲染 Rive 内容,也可以用非 Rive 的绘制命令来驱动 RiveRenderer

支持的平台与 API

后端头文件
D3D11rive/renderer/d3d11/render_context_d3d_impl.hppRenderContextD3DImpl
D3D12rive/renderer/d3d12/render_context_d3d12_impl.hppRenderContextD3D12Impl
Metalrive/renderer/metal/render_context_metal_impl.hRenderContextMetalImpl
Vulkanrive/renderer/vulkan/render_context_vulkan_impl.hppRenderContextVulkanImpl
OpenGL / WebGLrive/renderer/gl/render_context_gl_impl.hppRenderContextGLImpl

C++ 运行时也是 Rive iOS/macOSAndroidFlutter 运行时的基础 — 这些平台提供的是一层轻量封装,而不是独立的引擎。

源码与许可证