Skip to content

ultralight-ux/AppCore

Repository files navigation

AppCore

AppCore is a cross-platform app runtime module for Ultralight that provides platform-specific window creation, events, message loops, and GPU context creation / drawing.

You should use AppCore only if you intend to build a standalone HTML-based desktop application (ala Electron).

For lower-level integration, (eg, for rendering within an existing game engine), you should instead use the lower-level Ultralight API (eg, Renderer::Create()) which grants you the ability to render Views offscreen to a pixel buffer using the CPU renderer.

For more information see our Docs.

The following GPU back-ends are used on each platform:

Platform GPU Driver
Windows Direct3D 11
macOS Metal
Linux OpenGL 3.2 (GLFW)

Downloading pre-built binaries

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

Click any of the bucket links to get an XML file listing. Download a package by appending the filename to the bucket URL.

You'll need the following:

Setting up on Windows

  1. Install Visual Studio 2019 (Free Community Edition works fine). Remember to select the C++ packages.
  2. Install Chocolatey (https://chocolatey.org).
  3. Run the following from command line:
choco install cmake ninja

Setting up on macOS

  1. Install Xcode Command Line Tools (or the full Xcode package).
  2. Download the macOS 10.14 Platform SDK from https://github.com/phracker/MacOSX-SDKs/releases and extract it to /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk.
  3. Install Homebrew (https://brew.sh/)
  4. Run the following from the Terminal to setup the needed homebrew packages:
brew install cmake ninja

Setting up on Linux (Debian 9.5+)

To get everything on Linux, just type the following:

sudo apt install cmake ninja-build clang lld-4.0 libx11-dev xorg-dev libglu1-mesa-dev

Building from source

Building on Windows

To build AppCore for Windows / 64-bit:

make release x64

Building Debug on Windows

To build AppCore with debug symbols:

make debug x64

Building on Windows with locally-built dependencies

By default, the build scripts in this repo fetch pre-built dependencies from our servers.

To build AppCore using locally-built dependencies in the /deps folder (really only useful if you need to build against modified modules/deps):

make release x64 local

Building on macOS and Linux

To build for macOS/Linux:

./make

Build products

Build products will be in <build_dir>/out.

If your checkout is up-to-date, a 7zip release archive will also be generated in <build_dir>.