Unbound Fanatic - Runtime Svg System

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