RuntimeSvgSystem
Runtime SVG Loading, Rasterization and Management for Unreal Engine
Bring SVG files into Unreal Engine as first-class assets and rasterize them to textures at runtime - at any resolution, with any color tint.
RuntimeSvgSystem is a complete, dependency-light pipeline: import .svg files in the Content Browser, preview and edit them in a built-in editor window, then display them with ready-made UMG widgets or the asset-management subsystem. Backed by the lunasvg rasterizer (C++17, no external runtime dependencies), it runs on desktop and mobile platforms and is fully Blueprint-friendly.
KEY FEATURES
1. Runtime SVG Rasterization
Convert SVG source to UTexture2D at runtime at any resolution - from 32x32 icons to 2048x2048 splash art.
Optional color tinting: recolor an SVG without touching the source file.
Cached output: textures are generated once per (size, tint) pair and reused - repeated calls never re-rasterize.
2. First-Class SVG Assets
Import .svg files directly in the Content Browser as USvgWrapper assets (drag & drop or Import).
Source-file tracking and reimport support.
Assets carry an Id (defaults to the asset name) used to resolve textures at runtime.
Context-menu tools: Create Texture Asset… (bake a texture at a chosen resolution), Fix Render (normalizes em/rem/ex/ch units), Reset Id to Asset Name (repairs stale Ids after rename/duplicate).
3. Built-In SVG Editor
Double-click any SVG asset: live preview with zoom slider and checkerboard background.
Edit the SVG source code, the asset Id, and Auto Register / Auto CleanUp toggles in place.
4. Asset-Management Subsystem (USVG_Subsystem)
Async startup loading - auto-registered assets load through the streamable manager without blocking game start.
Parse-once document caching - each SVG is parsed a single time; any additional size or tint only re-rasterizes the cached document.
Texture caching - generated textures are cached per size and tint and strongly referenced.
Level-switch cleanup - textures release automatically on map change (per asset or per registration); the parsed document stays for instant re-render.
Register, unregister, clear and change cleanup behavior from C++ or Blueprints.
5. UMG Widgets
USvgImage - image component that resolves an SVG texture by Id, with design-time preview.
USvgButton - button component with Normal/Hovered/Pressed tint colors from the same SVG texture.
Both auto-refresh: they listen to the subsystem's asset-loaded event and swap in the real texture as soon as it is available.
6. Placeholder Textures
Global placeholder in Project Settings > SVG System; every widget can override it with its own texture.
Placeholders show while an SVG is loading or cannot be resolved, then are automatically replaced when loading completes - no blank spaces in your UI.
7. Multi-Platform
Windows (editor + runtime), Linux (x64/arm64), macOS (universal arm64 + x86_64), Android (arm64-v8a / armeabi-v7a / x86_64) and iOS (arm64 device).
Prebuilt static libraries included for every platform - no third-party DLLs or plugins to deploy.
8. Blueprint-Friendly
Subsystem and conversion functions are all BlueprintCallable: register assets, request textures, manage cleanup - no C++ required.
9. Performance
Parse once, render many - no repeated XML parsing.
Zero-copy pixel path - row-wise byte copy in native BGRA order (no per-pixel loop) unless a tint is requested.
Async startup and cached generation - repeated requests are near-free lookups.
10. Quality
Four built-in automation tests: pixel conversion, document reuse, cache-key semantics, placeholder resolution.
Clean public API - no third-party headers leak into your project’s compile.
TYPICAL USE CASES
UI icon sets and HUD elements - recolor one icon for normal/hover/pressed/disabled states.
Runtime-generated art: user-uploaded SVGs, downloadable content, modding support.
Resolution-independent art: one asset, any target size, no import-time baking.
Localization-ready art: text stored as SVG paths scales cleanly.
REQUIREMENTS
Unreal Engine 5.1 or later.
Platforms: Windows, Linux, macOS, Android, iOS.
THIRD-PARTY LICENSES
Statically links lunasvg and plutovg, both MIT licensed (full texts included in the package). No attribution required in your builds.
SUPPORT
Issues and feature requests: SVG_Support