docs
Loading...
Searching...
No Matches
CAPI_Config.h
Go to the documentation of this file.
1///
2/// Copyright (C) 2026 Ultralight, Inc. All rights reserved.
3/// A license is required for commercial use. https://ultralig.ht
4///
5
6///
7/// @file CAPI_Config.h
8///
9/// Core configuration for the renderer.
10///
11/// `#include <Ultralight/CAPI/CAPI_Config.h>`
12///
13/// These are various configuration options that can be used to customize the behavior of the
14/// library. These options can only be set once before creating the Renderer.
15///
16#ifndef ULTRALIGHT_CAPI_CONFIG_H
17#define ULTRALIGHT_CAPI_CONFIG_H
18
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26/******************************************************************************
27 * Config
28 *****************************************************************************/
29
30///
31/// How much checking and warning the library does for mistakes made through one of its APIs.
32///
33/// Warnings go to the Logger at kLogLevel_Warning, tagged with the API they came from (eg,
34/// `[js]`, `[dom]`, `[data]`), and to the page's console when a page is involved.
35///
36/// @see ulConfigSetJavaScriptDiagnostics(), ulConfigSetDOMDiagnostics()
37///
38typedef enum {
39 ///
40 /// No per-operation warnings (a mistake the library only finds once, like an invalid setup
41 /// call, still warns).
42 ///
44
45 ///
46 /// Development warnings about each mistake as it happens.
47 ///
49
50 ///
51 /// Everything kULDiagnosticsLevel_Warn reports, plus stricter checks (eg, a lossy argument
52 /// conversion in a JavaScript binding becomes a TypeError, and every DOM call on a NULL handle
53 /// warns).
54 ///
56
57 ///
58 /// Warn when developer mode is on, Off when it's off (see ulConfigSetDeveloperMode()).
59 ///
62
63///
64/// Create config with default values (see <Ultralight/platform/Config.h>).
65///
66/// @return Returns a new ULConfig instance. You must call ulDestroyConfig() when finished.
67///
69
70///
71/// Destroy a ULConfig instance created by ulCreateConfig().
72///
73/// @param config The config to destroy (can be NULL).
74///
76
77///
78/// A writable OS file path to store persistent Session data in.
79///
80/// This data may include cookies, cached network resources, indexed DB, etc.
81///
82/// @note Files are only written to the path when using a persistent Session.
83///
85
86///
87/// The relative path to the resources folder (loaded via the FileSystem API).
88///
89/// The library loads certain resources (SSL certs, ICU data, etc.) from the FileSystem API
90/// during runtime (eg, `file:///resources/cacert.pem`).
91///
92/// You can customize the relative file path to the resources folder by modifying this setting.
93///
94/// (Default = "resources/")
95///
96ULExport void ulConfigSetResourcePathPrefix(ULConfig config, ULString resource_path_prefix);
97
98///
99/// The winding order for front-facing triangles.
100///
101/// @pre Only used when GPU rendering is enabled for the View.
102///
103/// (Default = kFaceWinding_CounterClockwise)
104///
106
107///
108/// The hinting algorithm to use when rendering fonts. (Default = kFontHinting_Normal)
109///
110/// @see ULFontHinting
111///
113
114///
115/// The font-appearance preset providing default values for the text rendering knobs (font
116/// gamma, font contrast, font stem darkening, font embolden). Knobs you set explicitly override
117/// the preset's values. (Default = kFontProfile_Default)
118///
119/// @see ULFontProfile
120///
122
123///
124/// Set how antialiased glyph edges are blended into the page (Default = kFontBlendMode_Profile,
125/// meaning the font profile's value).
126///
127/// @see ULFontBlendMode
128///
130
131///
132/// The gamma to use when compositing font glyphs, change this value to adjust contrast (Adobe and
133/// Apple prefer 1.8, others may prefer 2.2). Set to 0 to use the value from the font profile.
134/// (Default = 0, meaning the profile's value; the default profile uses 2.2)
135///
136ULExport void ulConfigSetFontGamma(ULConfig config, double font_gamma);
137
138///
139/// Additional contrast enhancement applied when compositing font glyphs. Values above 0 thicken
140/// the midtones of antialiased glyph edges, increasing apparent text weight at every size. The
141/// useful range is 0.0 (none) to about 1.0. Set below 0 to use the value from the font profile.
142/// (Default = -1.0, meaning the profile's value; the default profile uses 0.3)
143///
144ULExport void ulConfigSetFontContrast(ULConfig config, double font_contrast);
145
146///
147/// Stem-darkening strength for rendered text. Boosts the coverage of antialiased glyph pixels
148/// so thin stems keep their apparent weight on light backgrounds; each preset shapes how the
149/// boost varies with glyph size. Text on dark backgrounds is unaffected. Set below 0 to use the
150/// value from the font profile. (Default = -1.0, meaning the profile's value)
151///
152ULExport void ulConfigSetFontStemDarkening(ULConfig config, double font_stem_darkening);
153
154///
155/// Extra stroke weight applied to glyph shapes, as a fraction of the font size (for example,
156/// 0.01 widens stems by roughly 1% of the em). Applies uniformly at every size and on both
157/// light and dark backgrounds; glyph advances and layout are unaffected. Set below 0 to use the
158/// value from the font profile. (Default = -1.0, meaning the profile's value)
159///
160ULExport void ulConfigSetFontEmbolden(ULConfig config, double font_embolden);
161
162///
163/// Global user-defined CSS string (included before any CSS on the page).
164///
165/// You can use this to override default styles for various elements on the page.
166///
167/// @note This is an actual string of CSS, not a file path.
168///
170
171///
172/// Whether or not to continuously repaint any Views, regardless if they are dirty.
173///
174/// This is mainly used to diagnose painting/shader issues and profile performance.
175///
176/// (Default = False)
177///
178ULExport void ulConfigSetForceRepaint(ULConfig config, bool enabled);
179
180///
181/// Whether or not GPU-accelerated Views render vector content (path fills and strokes)
182/// analytically instead of tessellating it to triangles. Analytic rendering is
183/// resolution-independent: edges stay crisp under any zoom or transform.
184///
185/// Path rendering on CPU-rendered Views is unaffected. Disabling this also disables analytic
186/// text (see ulConfigSetEnablePhotonText).
187///
188/// (Default = True)
189///
190ULExport void ulConfigSetEnablePhoton(ULConfig config, bool enabled);
191
192///
193/// Whether or not text and color emoji also render analytically when analytic vector rendering
194/// is enabled (see ulConfigSetPhotonTextMinPx for the size cutoff). Ignored when analytic vector
195/// rendering is disabled.
196///
197/// This selects the text appearance for both renderers: CPU-rendered Views match the analytic
198/// look (unhinted outlines, fractional glyph placement) so output stays near-identical across
199/// renderers.
200///
201/// (Default = True)
202///
204
205///
206/// The minimum on-screen glyph size, in pixels, at which text renders analytically when analytic
207/// text is enabled; smaller glyphs use the rasterized glyph atlas. Set to 0 to render all text
208/// analytically. (Default = 16)
209///
210ULExport void ulConfigSetPhotonTextMinPx(ULConfig config, unsigned int min_px);
211
212///
213/// Additional delay (in seconds) on top of the engine's internal page-settled detection.
214///
215/// Increase this if you want a little more assurance that the page has fully settled (animations
216/// finished, late-arriving network activity complete) before ulViewIsSettled() flips and the
217/// page-settled callback fires, at the cost of additional wait time.
218///
219/// (Default = 0.1)
220///
221/// @see ulViewSetPageSettledCallback()
222///
224
225///
226/// The number of consecutive idle samples the library requires before it declares a page settled.
227///
228/// Together with the settle tick this sets the shortest time a page can take to settle (cycles *
229/// tick). Lower it to settle sooner, at the cost of tolerance for late layout or paint.
230///
231/// (Default = 5)
232///
233/// @see ulConfigSetPageSettleTick()
234///
235ULExport void ulConfigSetPageSettleCycles(ULConfig config, unsigned int cycles);
236
237///
238/// How often (in seconds) the library samples a loading page for idleness. (Default = 0.006)
239///
240/// @see ulConfigSetPageSettleCycles()
241///
243
244///
245/// The interval (in seconds) at which the library automatically recycles internal caches and
246/// reclaims memory.
247///
248/// The library performs this lightweight recycle for you from inside ulUpdate() / ulRender(). It
249/// is cheap enough to be invisible at typical frame rates, and letting the library drive it on
250/// this timer is the recommended approach.
251///
252/// Set to 0 to disable the automatic recycler entirely, for applications that prefer to call
253/// ulRecycle() on their own schedule.
254///
255/// (Default = 0.5)
256///
257ULExport void ulConfigSetRecycleDelay(ULConfig config, double delay);
258
259///
260/// Whether the library automatically collects garbage and returns freed memory to the OS without
261/// embedder involvement.
262///
263/// When a page builds up a large JavaScript heap and then goes quiet, that memory would otherwise
264/// stay resident until the next burst of activity or an explicit ulRecycle() / ulPurgeMemory().
265/// With this enabled, the library collects on its own and pushes the freed memory back to the OS,
266/// so the process footprint drifts back down after heavy content.
267///
268/// @note Reclamation only happens while ulUpdate() is being pumped. An application that stops
269/// calling ulUpdate() while idle gets no automatic reclamation; call ulRecycle() /
270/// ulPurgeMemory() explicitly in that case.
271///
272/// (Default = True)
273///
274ULExport void ulConfigSetIdleGCEnabled(ULConfig config, bool enabled);
275
276///
277/// How long (in seconds) a page must be idle, with no user input, before automatic idle
278/// collection begins.
279///
280/// Lower values reclaim sooner after the user stops interacting; higher values wait longer before
281/// assuming the page is idle. Only used when idle GC is enabled.
282///
283/// (Default = 2.0)
284///
285/// @see ulConfigSetIdleGCEnabled()
286///
287ULExport void ulConfigSetIdleGCIdleTime(ULConfig config, double idle_time);
288
289///
290/// The size of the library's memory cache in bytes.
291///
292/// @note You should increase this if you anticipate handling pages with large resources, Safari
293/// typically uses 128+ MiB for its cache.
294///
295/// (Default = 256 * 1024 * 1024)
296///
297ULExport void ulConfigSetMemoryCacheSize(ULConfig config, unsigned int size);
298
299///
300/// The number of pages to keep in the cache. (Default: 0, none)
301///
302/// @note
303/// \parblock
304///
305/// Safari typically caches about 5 pages and maintains an on-disk cache to support typical
306/// web-browsing activities.
307///
308/// If you increase this, you should probably increase the memory cache size as well.
309///
310/// \endparblock
311///
312/// (Default = 0)
313///
314ULExport void ulConfigSetPageCacheSize(ULConfig config, unsigned int size);
315
316///
317/// Memory vs. performance tuning for the renderer's HTML / JavaScript engine heaps. See the
318/// ULMemoryProfile enumerators for the effect of each profile.
319///
320/// Read once when the Renderer is created. (Default = kMemoryProfile_Balanced)
321///
322/// @see ULMemoryProfile
323///
325
326///
327/// The system's physical RAM size in bytes.
328///
329/// JavaScriptCore tries to detect the system's physical RAM size to set reasonable allocation
330/// limits. Set this to anything other than 0 to override the detected value. Size is in bytes.
331///
332/// This can be used to force JavaScriptCore to be more conservative with its allocation strategy
333/// (at the cost of some performance).
334///
335ULExport void ulConfigSetOverrideRAMSize(ULConfig config, unsigned int size);
336
337///
338/// The minimum size of large VM heaps in JavaScriptCore.
339///
340/// Set this to a lower value to make these heaps start with a smaller initial value.
341///
342/// Set to 0 to derive this value from the renderer's memory profile.
343///
344/// (Default = 0)
345///
346ULExport void ulConfigSetMinLargeHeapSize(ULConfig config, unsigned int size);
347
348///
349/// The minimum size of small VM heaps in JavaScriptCore.
350///
351/// Set this to a lower value to make these heaps start with a smaller initial value.
352///
353/// (Default = 1 * 1024 * 1024)
354///
355ULExport void ulConfigSetMinSmallHeapSize(ULConfig config, unsigned int size);
356
357///
358/// A soft target for the total JavaScriptCore heap size, in bytes.
359///
360/// This is not a hard limit: the heap may grow beyond this target. When it does, the garbage
361/// collector treats the heap as under memory pressure and reclaims more aggressively to bring it
362/// back toward the target.
363///
364/// Set to 0 to derive this value from the memory profile.
365///
366/// (Default = 0)
367///
368/// @see ulConfigSetMemoryProfile()
369///
370ULExport void ulConfigSetMaxHeapSize(ULConfig config, unsigned int size);
371
372///
373/// The number of threads to use in the Renderer (for parallel painting on the CPU, etc.).
374///
375/// You can set this to a certain number to limit the number of threads to spawn.
376///
377/// @note
378/// \parblock
379///
380/// If this value is 0, the number of threads will be determined at runtime using the following
381/// formula:
382///
383/// ```
384/// max(PhysicalProcessorCount() - 1, 1)
385/// ```
386///
387/// \endparblock
388///
389ULExport void ulConfigSetNumRendererThreads(ULConfig config, unsigned int num_renderer_threads);
390
391///
392/// The max amount of time (in seconds) to allow repeating timers to run during each call to
393/// Renderer::Update.
394///
395/// The library will attempt to throttle timers if this time budget is exceeded.
396///
397/// (Default = 1.0 / 200.0)
398///
399ULExport void ulConfigSetMaxUpdateTime(ULConfig config, double max_update_time);
400
401///
402/// The alignment (in bytes) of the BitmapSurface when using the CPU renderer.
403///
404/// The underlying bitmap associated with each BitmapSurface will have row_bytes padded to reach
405/// this alignment.
406///
407/// Aligning the bitmap helps improve performance when using the CPU renderer. Determining the
408/// proper value to use depends on the CPU architecture and max SIMD instruction set used.
409///
410/// We generally target the 128-bit SSE2 instruction set across most PC platforms so '16' is a safe
411/// value to use.
412///
413/// You can set this to '0' to perform no padding (row_bytes will always be width * 4) at a slight
414/// cost to performance.
415///
416/// (Default = 16)
417///
418ULExport void ulConfigSetBitmapAlignment(ULConfig config, unsigned int bitmap_alignment);
419
420///
421/// The quality of effects (blurs, CSS filters, SVG filters, etc.) to use when rendering.
422///
423/// (Default = kEffectQuality_Medium)
424///
425/// @see ULEffectQuality
426///
428
429///
430/// Whether to ignore SSL certificate errors when using the built-in network backend.
431///
432/// When set to true, SSL certificate verification will be disabled, allowing connections
433/// to servers with self-signed or invalid certificates.
434///
435/// @warning This reduces security and should never be enabled in production.
436///
437/// (Default = false)
438///
440
441///
442/// Whether to validate TLS server certificates against the operating system's certificate
443/// store instead of the certificate bundle shipped with the application (resources/cacert.pem).
444///
445/// When true, certificates trusted by the host operating system (including enterprise or
446/// user-installed roots) are honored and the bundled list is not used.
447///
448/// Currently honored on Windows. On platforms where the OS trust store is not yet supported,
449/// this option is ignored and the bundled list is used.
450///
451/// (Default = false)
452///
454
455///
456/// Whether to paint full layers when dirty instead of just the dirty subregion.
457///
458/// This can be useful for debugging rendering issues or when dirty region tracking
459/// is causing artifacts.
460///
461/// @note Enabling this will impact performance as entire layers are redrawn.
462///
463/// (Default = false)
464///
466
467///
468/// The interval (in milliseconds) at which the library samples and emits resource counters
469/// (memory usage, VRAM, cache sizes, etc.) via the Profiler's EmitCounter() callback.
470///
471/// Set to 0 to disable resource counter sampling entirely; scopes and events are unaffected.
472///
473/// (Default = 500)
474///
475ULExport void ulConfigSetResourceSampleInterval(ULConfig config, unsigned int interval_ms);
476
477///
478/// Set whether or not the library runs in developer mode (Default = false).
479///
480/// Developer mode turns the kULDiagnosticsLevel_Auto levels into kULDiagnosticsLevel_Warn, and
481/// lets the diagnostics environment variables (`UL_JS_DIAGNOSTICS`, `UL_DOM_DIAGNOSTICS`) override
482/// them. You should turn it on in your development builds and leave it off in the builds you ship
483/// (a release library ignores those variables when developer mode is off, so a shipped app's
484/// behavior can't be changed from its environment). Each variable takes `off`, `warn`, or
485/// `strict`.
486///
487/// @param config The config.
488///
489/// @param developer_mode Whether or not to run in developer mode.
490///
491ULExport void ulConfigSetDeveloperMode(ULConfig config, bool developer_mode);
492
493///
494/// Set the diagnostics level for JavaScript APIs that leave their own level at the default
495/// (Default = kULDiagnosticsLevel_Auto).
496///
497/// @param config The config.
498///
499/// @param level The diagnostics level.
500///
502
503///
504/// Set the diagnostics level for the DOM API and data bindings
505/// (Default = kULDiagnosticsLevel_Auto).
506///
507/// @param config The config.
508///
509/// @param level The diagnostics level.
510///
512
513///
514/// Set the least severe level the library sends to the Logger; less severe messages are dropped
515/// (Default = kLogLevel_Info).
516///
517/// Diagnostics warnings are sent at kLogLevel_Warning, so a minimum of kLogLevel_Error or
518/// kLogLevel_Fatal hides them.
519///
520/// @param config The config.
521///
522/// @param level The minimum log level.
523///
525
526#if UL_HAS(MEDIA)
527///
528/// The memory-vs-performance profile for the HTML5 media subsystem.
529///
530/// Picks a tradeoff between peak memory per media element and playback smoothness / seek
531/// responsiveness. The value is read once when each media element starts loading and stays fixed
532/// for that element's lifetime; later changes apply only to subsequently-loaded elements.
533///
534/// (Default = kMediaProfile_Balanced)
535///
536/// @pre Requires the Pro edition or higher.
537///
538/// @see ULMediaProfile
539///
541#endif // UL_HAS(MEDIA)
542
543#ifdef __cplusplus
544} // extern "C"
545#endif
546
547#endif // ULTRALIGHT_CAPI_CONFIG_H
void ulConfigSetEffectQuality(ULConfig config, ULEffectQuality quality)
The quality of effects (blurs, CSS filters, SVG filters, etc.) to use when rendering.
void ulConfigSetResourceSampleInterval(ULConfig config, unsigned int interval_ms)
The interval (in milliseconds) at which the library samples and emits resource counters (memory usage...
void ulConfigSetDeveloperMode(ULConfig config, bool developer_mode)
Set whether or not the library runs in developer mode (Default = false).
void ulConfigSetPaintFullLayers(ULConfig config, bool enabled)
Whether to paint full layers when dirty instead of just the dirty subregion.
void ulConfigSetMediaProfile(ULConfig config, ULMediaProfile media_profile)
The memory-vs-performance profile for the HTML5 media subsystem.
void ulConfigSetEnablePhotonText(ULConfig config, bool enabled)
Whether or not text and color emoji also render analytically when analytic vector rendering is enable...
void ulConfigSetPageCacheSize(ULConfig config, unsigned int size)
The number of pages to keep in the cache.
void ulConfigSetFaceWinding(ULConfig config, ULFaceWinding winding)
The winding order for front-facing triangles.
void ulConfigSetBitmapAlignment(ULConfig config, unsigned int bitmap_alignment)
The alignment (in bytes) of the BitmapSurface when using the CPU renderer.
void ulConfigSetUserStylesheet(ULConfig config, ULString css_string)
Global user-defined CSS string (included before any CSS on the page).
void ulConfigSetOverrideRAMSize(ULConfig config, unsigned int size)
The system's physical RAM size in bytes.
ULDiagnosticsLevel
How much checking and warning the library does for mistakes made through one of its APIs.
Definition CAPI_Config.h:38
@ kULDiagnosticsLevel_Warn
Development warnings about each mistake as it happens.
Definition CAPI_Config.h:48
@ kULDiagnosticsLevel_Off
No per-operation warnings (a mistake the library only finds once, like an invalid setup call,...
Definition CAPI_Config.h:43
@ kULDiagnosticsLevel_Auto
Warn when developer mode is on, Off when it's off (see ulConfigSetDeveloperMode()).
Definition CAPI_Config.h:60
@ kULDiagnosticsLevel_Strict
Everything kULDiagnosticsLevel_Warn reports, plus stricter checks (eg, a lossy argument conversion in...
Definition CAPI_Config.h:55
void ulConfigSetMinSmallHeapSize(ULConfig config, unsigned int size)
The minimum size of small VM heaps in JavaScriptCore.
void ulConfigSetMaxHeapSize(ULConfig config, unsigned int size)
A soft target for the total JavaScriptCore heap size, in bytes.
void ulConfigSetFontProfile(ULConfig config, ULFontProfile font_profile)
The font-appearance preset providing default values for the text rendering knobs (font gamma,...
void ulConfigSetIdleGCIdleTime(ULConfig config, double idle_time)
How long (in seconds) a page must be idle, with no user input, before automatic idle collection begin...
void ulConfigSetNumRendererThreads(ULConfig config, unsigned int num_renderer_threads)
The number of threads to use in the Renderer (for parallel painting on the CPU, etc....
void ulConfigSetForceRepaint(ULConfig config, bool enabled)
Whether or not to continuously repaint any Views, regardless if they are dirty.
void ulConfigSetMemoryProfile(ULConfig config, ULMemoryProfile memory_profile)
Memory vs.
void ulDestroyConfig(ULConfig config)
Destroy a ULConfig instance created by ulCreateConfig().
void ulConfigSetFontBlendMode(ULConfig config, ULFontBlendMode font_blend_mode)
Set how antialiased glyph edges are blended into the page (Default = kFontBlendMode_Profile,...
void ulConfigSetResourcePathPrefix(ULConfig config, ULString resource_path_prefix)
The relative path to the resources folder (loaded via the FileSystem API).
void ulConfigSetMinLargeHeapSize(ULConfig config, unsigned int size)
The minimum size of large VM heaps in JavaScriptCore.
void ulConfigSetPhotonTextMinPx(ULConfig config, unsigned int min_px)
The minimum on-screen glyph size, in pixels, at which text renders analytically when analytic text is...
void ulConfigSetMaxUpdateTime(ULConfig config, double max_update_time)
The max amount of time (in seconds) to allow repeating timers to run during each call to Renderer::Up...
void ulConfigSetCachePath(ULConfig config, ULString cache_path)
A writable OS file path to store persistent Session data in.
void ulConfigSetFontEmbolden(ULConfig config, double font_embolden)
Extra stroke weight applied to glyph shapes, as a fraction of the font size (for example,...
void ulConfigSetRecycleDelay(ULConfig config, double delay)
The interval (in seconds) at which the library automatically recycles internal caches and reclaims me...
void ulConfigSetPageSettleCycles(ULConfig config, unsigned int cycles)
The number of consecutive idle samples the library requires before it declares a page settled.
void ulConfigSetIgnoreSSLErrors(ULConfig config, bool enabled)
Whether to ignore SSL certificate errors when using the built-in network backend.
void ulConfigSetPageSettleTick(ULConfig config, double tick)
How often (in seconds) the library samples a loading page for idleness.
void ulConfigSetPageSettleDelay(ULConfig config, double delay)
Additional delay (in seconds) on top of the engine's internal page-settled detection.
void ulConfigSetFontGamma(ULConfig config, double font_gamma)
The gamma to use when compositing font glyphs, change this value to adjust contrast (Adobe and Apple ...
void ulConfigSetFontStemDarkening(ULConfig config, double font_stem_darkening)
Stem-darkening strength for rendered text.
ULConfig ulCreateConfig(void)
Create config with default values (see <Ultralight/platform/Config.h>).
void ulConfigSetIdleGCEnabled(ULConfig config, bool enabled)
Whether the library automatically collects garbage and returns freed memory to the OS without embedde...
void ulConfigSetMinLogLevel(ULConfig config, ULLogLevel level)
Set the least severe level the library sends to the Logger; less severe messages are dropped (Default...
void ulConfigSetFontContrast(ULConfig config, double font_contrast)
Additional contrast enhancement applied when compositing font glyphs.
void ulConfigSetJavaScriptDiagnostics(ULConfig config, ULDiagnosticsLevel level)
Set the diagnostics level for JavaScript APIs that leave their own level at the default (Default = kU...
void ulConfigSetEnablePhoton(ULConfig config, bool enabled)
Whether or not GPU-accelerated Views render vector content (path fills and strokes) analytically inst...
void ulConfigSetDOMDiagnostics(ULConfig config, ULDiagnosticsLevel level)
Set the diagnostics level for the DOM API and data bindings (Default = kULDiagnosticsLevel_Auto).
void ulConfigSetMemoryCacheSize(ULConfig config, unsigned int size)
The size of the library's memory cache in bytes.
void ulConfigSetUseSystemCertificateStore(ULConfig config, bool enabled)
Whether to validate TLS server certificates against the operating system's certificate store instead ...
void ulConfigSetFontHinting(ULConfig config, ULFontHinting font_hinting)
The hinting algorithm to use when rendering fonts.
User-defined logging interface.
ULLogLevel
The severity of a log message, from most to least severe.
Definition CAPI_Logger.h:44
Various defines and utility functions for the C API.
ULFaceWinding
The winding order for front-facing triangles.
Definition CAPI_Defines.h:339
struct C_String * ULString
Opaque handle to a String object.
Definition CAPI_Defines.h:96
struct C_Config * ULConfig
Opaque handle to a Config object.
Definition CAPI_Defines.h:75
#define ULExport
Definition CAPI_Defines.h:42
ULMemoryProfile
Memory vs.
Definition CAPI_Defines.h:451
ULFontBlendMode
How antialiased glyph edges are blended into the page.
Definition CAPI_Defines.h:403
ULEffectQuality
The quality level for rendering effects (CSS filters, shadows, blurs, etc.).
Definition CAPI_Defines.h:426
ULFontProfile
The font-appearance preset that provides default values for the text rendering knobs.
Definition CAPI_Defines.h:376
ULFontHinting
Definition CAPI_Defines.h:344
ULMediaProfile
Memory vs.
Definition CAPI_Defines.h:481