桌面端接入指南
接入方式
桌面端(macOS、Windows、Linux)暂不提供统一的制品库,需要开发者根据源码自行构建,但我们会提供编译指引。PAG是跨平台的,不同平台之间的API接口具有一致性。
具体原因如下:
- Windows端没有统一的UI框架;
- Linux端由于服务端CPU型号或系统版本的差异,统一的制品库难以完全兼容
源码下载
PAG 的主体实现位于 C++ 层代码,平台侧为 PAG 的绘制提供渲染环境,因此所有的代码都位于 github 仓库 https://github.com/tencent/libpag
源码下载后需要拉取第三方库依赖
macOS 和 Linux 平台:
./sync_deps.sh
其它平台:
npm install -g depsync
depsync
在源码根目录下,有平台侧的文件夹,如 android、ios、web、linux、mac、 win 等,各平台侧的工程文件在这些目录下,工程文件均依赖仓库中的 C++ 主体代码。
API接口使用
在PAG的源码工程中,C++层基本上所有对外提供的方法都进行了测试用例的覆盖,如果想了解具体方法的使用,查看相关测试用例是一种很便捷的途径。
macOS端接入
基本要求
- macOS 10.14 or later
编译构建
macOS 端的项目工程位于源码根目录 mac 文件夹下,为 Xcode 工程,开发者可以自行构建
Windows接入指南
编译工具
Visual Studio
最低版本要求 VS2015Node.js
PAG依赖管理的基础depsync
用于PAG的依赖管理
环境准备
- 从Node.js官网获取并安装 Node.js
- 通过 npm 安装
npm install depsync -g
运行Demo
- 执行
libpag\win\Win32Demo.sln
启动 Demo 工程 - 运行 Demo。首次执行时会同步依赖和编译 PAG,会比较耗时
- 随 Demo 构建的 pag.lib 是 release 的,需要构建 debug 版可以参考下边的指引
使用PAG【Angle backend】
首次运行时,在
libpag
根目录下执行depsync
在根目录执行 cmake-build 生成 PAG,会同时生成 32 位和 64 位的 pag.lib
node .\vendor_tools\cmake-build pag -p win -o .\win\paglib -v -i -DPAG_BUILD_SHARED=OFF
-p
platform,在Windows下选择win
-o
output,指定输出目录-i
incremental,增量编译开关,关闭时会清理编译目录-d
debug,debug开关-v
verbose,详细打印日志DPAG_BUILD_SHARED
动态库编译开关
头文件位置
libpag\include
在自己的工程内使用的时候,还需要在
工程属性->链接器->输入->附加依赖项
中添加两个系统库Bcrypt.lib ws2_32.lib
在使用 Angle backend 时,可执行程序需要链接 Angle 动态库
libpag\vendor\angle\win\
使用PAG【QT backend】
- Demo的位置在
libpag\qt
- 请提前安装好 VS2019 版本,至少必须同时安装 [使用 C++ 的桌面开发] 和 [通用 Windows 平台开发] 两个子模块。
- 在 CLion 的选项菜单里搜索 ToolChain ,设置默认编译工具为 Visual Studio,并选择 amd64 架构。
- 用 CLion 打开根目录下的 qt 文件夹,首次刷新会提示 QT SDK 找不到,请打开自动生成的 qt/QTCMAKE.cfg 配置文件,修改其中的 QT 路径为本地安装路径即可。例如:
C:/Qt/Qt5.13.0/5.13.0/msvc2017_64/lib/cmake
。 - 在 CLion 中打开 PAGViewer 目标的配置面板,在 Environment Variables 一行填入本地 QT 的 DLL 库路径,例如:
PATH=C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin
。 - 最后编译并运行 PAGViewer 目标即可。
Linux端接入
基本要求
- gcc版本不低于7.0
编译构建
开发者参照源码根目录下的 Linux_build.md 完成依赖环境的安装
通过根目录下的 build_linux.sh 完成pag库文件的构建
编译生成的头文件和库文件位于 linux/vendor 目录下
Demo工程
Demo 工程通过 CMake 来组织,依赖的库文件来自于上一步的构建
在 linux 目录下
mkdir build
cd build
cmake ../
make -j8
./pag-linux
Demo工 程仅仅提供了库文件的编译和简单的使用范例,如果需要占位图填充视频或者导出视频,需要使用者自行开发