How tencent/libpag works
libpag is a cross-platform animation runtime and toolchain for Portable Animated Graphics. The documented workflow begins with an After Effects designer exporting a PAG file, continues with an application loading and rendering it through the SDK, and supports runtime edits such as replacing text or images. PAGViewer previews files and reports performance; the repository also exposes PAGX document APIs and command-line tooling. The graph combines README-documented flows with source-index relationships and sampled calls; unsampled implementation details are not inferred.
Main entry points: pag.h PAG SDK · main.cpp PAGViewer · PAGExport.cpp PAGExporter · file.h PAG file model
Components 18
Authoring and export
- PAGExporter
exporter/src/export/PAGExport.cpp - Exporter UI
exporter/src/ui/WindowManager.cpp
PAG runtime
- PAG SDK
include/pag/pag.h - PAG file model
include/pag/file.h - Layer renderer
src/renderer/LayerBuilder.cpp - Font manager
src/rendering/FontManager.cpp
PAGX and CLI
- PAGX document
include/pagx/PAGXDocument.h - PAGX CLI
src/cli/main.cpp - Image storage
src/cli/ImageStorage.cpp
Preview applications
- PAGViewer
viewer/src/main.cpp - PAG view
viewer/src/rendering/pag/PAGView.h - PAGX view
viewer/src/rendering/pagx/PAGXView.h - Performance monitor
viewer/src/profiling/PAGRunTimeDataModel.h
Platform integrations
- Android SDK
android/libpag/src/main/java/org/libpag/PAGView.java - Web SDK
web/src/core/backend-context.ts - Web video manager
web/src/video-reader-manager.ts - OpenHarmony adapter
src/platform/ohos/XComponentHandler.cpp
Other components
- AE designer
Connections 16
- AE designer → PAGExporter: authors animation
README.md - PAGExporter → PAG file model: exports PAG
README.md - Exporter UI → PAGExporter: opens export
- PAG file model → PAG SDK: loaded by
README.md - PAG SDK → Layer renderer: renders animation
- PAG SDK → Font manager: registers fonts
- PAG SDK → PAGX document: supports editing
- PAGX CLI → Image storage: normalizes images
src/cli/ImageStorage.cpp - PAGViewer → PAG view: registers view
viewer/src/main.cpp - PAGViewer → PAGX view: registers view
viewer/src/main.cpp - PAGViewer → Performance monitor: registers model
viewer/src/main.cpp - PAGViewer → PAG file model: previews PAG
README.md - Android SDK → PAG SDK: exposes SDK
README.md - Web SDK → PAG SDK: exposes SDK
README.md - Web video manager → PAG SDK: reads video metadata
- OpenHarmony adapter → PAG SDK: integrates runtime
README.md