All Projects â†’ ultralight-ux â†’ Ultralight

ultralight-ux / Ultralight

Next-generation HTML renderer for apps and games

Programming Languages

CMake
9771 projects

Projects that are alternatives of or similar to Ultralight

Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (-94.5%)
Mutual labels:  cmake, game-development, gamedev, metal, cross-platform
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+185.97%)
Mutual labels:  gamedev, opengl, metal, directx-11
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (-90.66%)
Mutual labels:  cmake, game-development, gamedev, cross-platform
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (-15.34%)
Mutual labels:  game-development, gamedev, opengl, cross-platform
Fiber2d
Cross-platform 2D Game Engine in pure Swift
Stars: ✭ 415 (-88.42%)
Mutual labels:  games, opengl, metal, cross-platform
Ncine
A cross-platform 2D game engine
Stars: ✭ 372 (-89.62%)
Mutual labels:  game-development, gamedev, opengl, cross-platform
Rizz
Small C game development framework
Stars: ✭ 428 (-88.06%)
Mutual labels:  game-development, gamedev, opengl, metal
Tprpix
a Cross-Platform, 2D Survival Sandbox Game Project. Based on C++17/cmake/OpenGL/SQLite3.
Stars: ✭ 448 (-87.5%)
Mutual labels:  cmake, opengl, cross-platform
Arxlibertatis
Cross-platform port of Arx Fatalis, a first-person role-playing game
Stars: ✭ 602 (-83.21%)
Mutual labels:  cmake, opengl, cross-platform
Magnum Plugins
Plugins for the Magnum C++11/C++14 graphics engine
Stars: ✭ 66 (-98.16%)
Mutual labels:  cmake, gamedev, opengl
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+198.8%)
Mutual labels:  cmake, game-development, opengl
Magnum Bootstrap
Bootstrap projects for Magnum C++11/C++14 graphics engine
Stars: ✭ 69 (-98.08%)
Mutual labels:  cmake, gamedev, opengl
Raz
Modern & multiplatform game engine in C++17
Stars: ✭ 161 (-95.51%)
Mutual labels:  cmake, opengl, cross-platform
Ark
ARK is a lightweight, agility, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 370 (-89.68%)
Mutual labels:  cmake, game-development, cross-platform
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-92.25%)
Mutual labels:  game-development, gamedev, games
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+3.99%)
Mutual labels:  cmake, gamedev, opengl
Sh3redux
SILENT HILL 3 Engine Remake in OpenGL and C++
Stars: ✭ 105 (-97.07%)
Mutual labels:  cmake, game-development, opengl
Magnum Examples
Examples for the Magnum C++11/C++14 graphics engine
Stars: ✭ 180 (-94.98%)
Mutual labels:  cmake, gamedev, opengl
Mxengine
C++ open source 3D game engine
Stars: ✭ 284 (-92.08%)
Mutual labels:  game-development, gamedev, opengl
Skui
Skia-based C++ UI framework
Stars: ✭ 218 (-93.92%)
Mutual labels:  cmake, opengl, cross-platform

Website | Join our Discord! | Browse C/C++ API | Documentation | Follow on Twitter

Discord Chat

Got a question about Ultralight? Come chat with us on Discord!

Join the Ultralight Discord!

About

Ultralight is an ultra-fast, ultra-light, standards-compliant HTML renderer for applications and games. It supports most modern HTML5, CSS, and JavaScript features while still remaining light in binary size and memory usage.

Currently available for Windows, macOS, and Linux (64-bit only, ARM64 coming).

Official API is available for C and C++, with community bindings for C#, Rust, Java, and Go available here.

Get started now by reading the docs.

Next-Generation HTML Renderer

You can think of Ultralight like a smaller, lighter, cross-platform WebKit that's more customizable and designed to display HTML in an existing app rather than function as a standalone browser.

The API allows you to integrate your native code deeply with JavaScript (we offer bare-metal access to the JavaScriptCore VM API) and allows you to customize file system loaders, font loading, clipboard integration, and even drawing itself (via GPU display lists or the Surface API).

For Games

Render HTML to an in-game texture using our CPU renderer or take performance to the next level using our GPU renderer.

Take advantage of our low-level platform API— load HTML assets directly from your game's existing asset pipeline using the FileSystem interface.

→ Learn more by visiting our Game Integration Guide.

For Desktop Apps

Get the best of both worlds by building your native C/C++ desktop app's front-end with modern HTML/CSS/JS.

Take advantage of our AppCore framework to launch cross-platform windows and render to OS-native GPU surfaces (D3D11, D3D12, Metal, OpenGL, and more).

AppCore is currently under active development and only supports single-window apps at this writing. A number of planned features (app icons, automatic packager, borderless windows with custom draggable titlebars, etc) are missing but on the way.

→ Learn more by visiting our Desktop App Guide.

Base Memory Usage

Ultralight Electron
Windows 9 MB 72 MB
macOS 17 MB 97 MB
Linux 15 MB 136 MB

Base Distributable Size

Ultralight Electron
Windows 40 MB 147 MB
macOS 55 MB 163 MB
Linux 55 MB 179 MB

Comparison with Chromium

Ultralight Chromium
Renderer Proprietary (GPU or CPU) Skia (CPU) / GPU Compositor
Layout Engine WebCore (WebKit fork) Blink
JavaScript VM JavaScriptCore V8
IPC None (Single Process) Yes (Multi Process)

Architecture

Ultralight is a new port of WebKit combined with a new lightweight renderer intended specifically for embedding in apps and games.

Portions of the library are open-source, here's how the library is laid out:

Description License Source Code
UltralightCore Low-level graphics renderer Proprietary (Available with license)
WebCore HTML layout engine (WebKit fork) LGPL/BSD ultralight-ux/WebCore
Ultralight View, compositor, and event logic Proprietary (Avaiable with license)
AppCore Optional, desktop app runtime LGPL ultralight-ux/AppCore

Dual High-Performance Renderers

We support two different renderers for integration into a variety of target environments.

GPU Renderer

Our optional, high-performance GPU renderer can render HTML directly on the GPU. All painting is performed via virtual display lists and translated to your target graphics platform at runtime. For more info, see Using a Custom GPUDriver.

The GPU renderer is enabled by default when using Ultralight via the AppCore runtime.

CPU Renderer

For easier integration into games and other complex environments, Ultralight can render to an offscreen pixel buffer using an SIMD-accelerated CPU rendering pipeline. Fore more info, see the Game Integration Guide.

The library can also render to a user-supplied pixel buffer via the Surface API (see Using a Custom Surface).

Paths, gradients, and patterns in this mode are rasterized using Blend2D's high-performance JIT compiler.

Licensing

Free License

Ultralight is free for non-commercial use and free for commercial use by companies with less than $100K gross annual revenue. For more info see LICENSE.txt

Commercial Licensing and Support

We offer commercial licensing, priority support, and source code. To learn more, please visit our website.

Building the Samples

To build the samples in this repo, please follow the instructions here.

Getting the Latest SDK

You can get the latest SDK for each platform via the following links:

Getting Archived Binaries for a Specific Commit

Pre-built binares are uploaded to the following S3 buckets every commit:

Useful Links

Link URL
Join our Discord! https://chat.ultralig.ht
Docs / Getting Started https://docs.ultralig.ht
Browse C/C++ API https://github.com/ultralight-ux/Ultralight-API/
Follow Us on Twitter https://twitter.com/ultralight_ux
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].