Ultralight C++ API 1.4.0
|
#include <Ultralight/platform/Platform.h>
Global platform singleton, manages user-defined platform handlers and global config.
The library uses the Platform API for most platform-specific operations (eg, file access, clipboard, font loading, GPU access, pixel buffer transport, etc.).
Ultralight is designed to work in as many platforms and environments as possible. To achieve this, we've factored out most platform-specific code into a set of interfaces that you can implement and set on the Platform singleton.
We provide a number of default implementations for desktop platforms (eg, Windows, macOS, Linux) for you when you call App::Create(). These implementations are defined in the AppCore repository, we recommend using their source code as a starting point for your own implementations.
When using Renderer::Create() directly, you'll need to provide your own implementations for FileSystem and FontLoader at a minimum.
Renderer::Create() | App::Create() | |
---|---|---|
FileSystem | Required | Provided |
FontLoader | Required | Provided |
Clipboard | Optional | Provided |
GPUDriver | Optional | Provided |
Logger | Optional | Provided |
SurfaceFactory | Provided | Provided |
ThreadFactory | Optional | Optional |
Static Public Member Functions | |
static Platform & | instance () |
Get the Platform singleton. | |
Public Member Functions | |
virtual | ~Platform () |
virtual void | set_config (const Config &config)=0 |
Set the Config. | |
virtual const Config & | config () const =0 |
Get the Config. | |
virtual void | set_logger (Logger *logger)=0 |
Set the Logger (to handle error messages and debug output). | |
virtual Logger * | logger () const =0 |
Get the Logger. | |
virtual void | set_gpu_driver (GPUDriver *gpu_driver)=0 |
Set the GPU Driver (will handle all rendering) | |
virtual GPUDriver * | gpu_driver () const =0 |
Get the GPU Driver. | |
virtual void | set_font_loader (FontLoader *font_loader)=0 |
Set the Font Loader (will be used to map font families to actual fonts) | |
virtual FontLoader * | font_loader () const =0 |
Get the Font Loader. | |
virtual void | set_file_system (FileSystem *file_system)=0 |
Set the File System (will be used for all file system operations) | |
virtual FileSystem * | file_system () const =0 |
Get the File System. | |
virtual void | set_clipboard (Clipboard *clipboard)=0 |
Set the Clipboard (will be used for all clipboard operations) | |
virtual Clipboard * | clipboard () const =0 |
Get the Clipboard. | |
virtual void | set_surface_factory (SurfaceFactory *surface_factory)=0 |
Set the SurfaceFactory. | |
virtual SurfaceFactory * | surface_factory () const =0 |
Get the SurfaceFactory. | |
virtual void | set_thread_factory (ThreadFactory *thread_factory)=0 |
Set the ThreadFactory. | |
virtual ThreadFactory * | thread_factory () const =0 |
Get the ThreadFactory. | |
|
virtual |
|
pure virtual |
Get the File System.
|
pure virtual |
Get the Font Loader.
|
pure virtual |
Get the GPU Driver.
|
pure virtual |
|
pure virtual |
Set the File System (will be used for all file system operations)
file_system | A user-defined FileSystem implementation, ownership remains with the caller. |
|
pure virtual |
Set the Font Loader (will be used to map font families to actual fonts)
font_loader | A user-defined FontLoader implementation, ownership remains with the caller. |
|
pure virtual |
Set the GPU Driver (will handle all rendering)
gpu_driver | A user-defined GPUDriver implementation, ownership remains with the caller. |
|
pure virtual |
|
pure virtual |
Set the SurfaceFactory.
This can be used to provide a platform-specific bitmap surface for View to paint into when the CPU renderer is enabled. See View::surface().
surface_factory | A user-defined SurfaceFactory implementation, ownership remains with the caller. |
|
pure virtual |
Set the ThreadFactory.
This can be used to provide a platform-specific ThreadFactory implementation for the library to use when creating threads.
thread_factory | A user-defined ThreadFactory implementation, ownership remains with the caller. |
|
pure virtual |
Get the SurfaceFactory.
|
pure virtual |
Get the ThreadFactory.