LibraryActive

Ultralight

Ultralight is a renderer-agnostic HTML engine that emits raw GPU geometry via a custom GPUDriver interface for high-performance integration with native renderers.

Open source page ↗

Field note

What it does

Ultralight is a lightweight HTML engine designed for games and apps. It supports custom GPU drivers, enabling direct GPU rendering without CPU bitmaps. It provides a renderer-agnostic architecture with shaders, blending modes, and render loop integration.

Capabilities

Available capabilities

Tags

Tags

Ways to use it

Ways to use it

sdk

C++ / https://docs.ultralig.ht/docs/using-a-custom-gpudriver

sdk

C++ / https://docs.ultralig.ht/docs/using-the-cpp-api

sdk

C / https://docs.ultralig.ht/docs/using-the-c-api

sdk

C++ / Not filed

Product features

Product features

64-bit Only

Only 64-bit binaries (x86_64/amd64/arm64) are offered; upstream JavaScriptCore dropped 32-bit support.

App Development

Build standalone desktop apps with Ultralight.

Blending Modes

Custom blend mode for color-accurate results when dispatching DrawGeometry commands.

C API

Use Ultralight via its C API.

C++ API

Use Ultralight via its C++ API.

Custom Surface Implementation

Inherit from Surface and handle virtual functions to paint directly into your own memory.

Game Integration

Integrate Ultralight into games or game engines.

GPU-Accelerated Views

Enable ViewConfig::is_accelerated to use GPU rendering on views.

GPUDriver API

Subclass GPUDriver to handle texture creation, buffer management, and shader binding.

GPUDriver API

GPU rendering to a texture.

ImageSource API

Use the ImageSource API to display custom textures in web pages.

OpenGL PBO Support

Example shows painting into OpenGL PBOs for lower-latency texture uploads.

Samples

Provides sample projects to demonstrate the Ultralight API.

Shader Programs

Supports kShaderType_Fill and kShaderType_FillPath shaders for CSS transforms and drawing.

Surface API

CPU rendering to a pixel buffer.

Surface Registration

Define a SurfaceFactory to allow the library to create/destroy custom surfaces.

View Configuration

Configure views for rendering, including acceleration settings.

View Management

Manages Views, high-level rendering, input translation, resource policies, and event dispatch.

Windows/MSVC Linking

Instructions for linking Ultralight libraries in Visual Studio on Windows.