Get Started
Get started using Ultralight in your application.
Ultralight is a lightweight HTML rendering engine for games and native apps.
You generally:
- Build your UI assets with the web technologies you already know.
- Render them in your game or native app using Ultralight.
- Hook it up to native logic and events using the DOM / JS bridge.
This documentation covers most of the things you need to know integrate Ultralight and use it in various environments.
See the following sections based on what you're building:
Prerequisites
Most guides assume you have the SDK on disk and a working build environment. Complete these steps before starting:
- Get the SDK binaries in Getting the SDK.
- Set up your environment in Installing Prerequisites.
- Verify your build setup in Trying the Samples.
Game Developers
For game developers looking to integrate Ultralight into an existing game or game engine, see the following guides:
| Guide | Description |
|---|---|
| Your First Game UI | Intro guide for games: Render a page to a texture using the CPU renderer. |
| Integrating into a Game Engine | Embed the renderer into your game loop. |
| Updating and Rendering | Update timers, advance animations, and render views. |
| Mouse and Scroll Input | Forward mouse and scroll events to a view. |
| Keyboard Input | Forward key presses and typed text to a view. |
| GPU Renderer Overview | Render accelerated views using your GPU pipeline. |
| Optimizing Performance | Profile bottlenecks and protect frame budgets. |
Desktop App Developers
For desktop app developers looking to use Ultralight as the basis for their application (Electron and CEF-style), see the following guides:
| Guide | Description |
|---|---|
| Writing Your First App | Intro guide for desktop app dev: Create a native window and load a local HTML page. |
| Building a Desktop App | Connect views to native logic and prepare to ship. |
| App Lifecycle and Settings | Configure runtime settings and manage the application lifecycle. |
| Laying Out Panels | Arrange views into rows, columns, and resizable splits. |
| Native Look and Feel | Support system themes, platform text editing, and window styling. |
| Shipping Your App | Package your application and assets for distribution. |
Embedded Developers
For embedded software developers looking to use Ultralight in resource-constrained environments or device UI, see the following guides:
| Guide | Description |
|---|---|
| Rendering to a Framebuffer | Intro guide for embedded developers: Paint a page directly into a framebuffer on the CPU. |
| Embedded and Device UI | Configure the renderer for resource-constrained hardware. |
| Managing Memory | Tune caches, memory limits, and garbage collection. |
| About Data Bindings | Synchronize native state with HTML markup. |
| About the DOM API | Inspect and modify elements from C++. |
📘 Migrating from 1.4
If you're upgrading an existing project from Ultralight 1.4, see Porting from 1.4 to 2.0.