microvg  8.0.3
microvg
Macros
vg_configuration.h File Reference

MicroEJ MicroVG library low level API: enable some features according to the hardware capacities. More...

#include "veeport_configuration.h"
#include "ui_configuration.h"
#include <stdio.h>

Go to the source code of this file.

Macros

#define VG_FEATURE_PATH_SINGLE_ARRAY   (1)
 Value of "VG_FEATURE_PATH" to use only one array to store the path's commands and the commands' parameters.
 
#define VG_FEATURE_PATH_DUAL_ARRAY   (2)
 Value of "VG_FEATURE_PATH" to use two arrays to store the path's data: one for the commands and one for the commands' parameters.
 
#define VG_FEATURE_GRADIENT_FULL   (1)
 Value of "VG_FEATURE_GRADIENT" to use a full implementation of the MicroVG's LinearGradient. More...
 
#define VG_FEATURE_GRADIENT_FIRST_COLOR   (2)
 Value of "VG_FEATURE_GRADIENT" to use a reduced implementation of the MicroVG's LinearGradient. More...
 
#define VG_FEATURE_FONT_FREETYPE_VECTOR   (1)
 Value of "VG_FEATURE_FONT" to use FreeTYPE as implementation of the MicroVG's VectorFont. More...
 
#define VG_FEATURE_FONT_FREETYPE_BITMAP   (2)
 Value of "VG_FEATURE_FONT" to use FreeTYPE as implementation of the MicroVG' VectorFont. More...
 
#define VG_FEATURE_PATH   VG_FEATURE_PATH_SINGLE_ARRAY
 Set this define to embed the implementation of the MicroVG's Path (dynamic path creation and path rendering). More...
 
#define VG_FEATURE_GRADIENT   VG_FEATURE_GRADIENT_FULL
 Set this define to specify the implementation of the MicroVG's LinearGradient (dynamic gradient creation and drawings with gradient). More...
 
#define VG_FEATURE_FONT   VG_FEATURE_FONT_FREETYPE_VECTOR
 Set this define to specify the implementation of the MicroVG' VectorFont (dynamic font loading and text rendering). More...
 
#define VG_FEATURE_FREETYPE_TTF   (0)
 Set this define to 1 to enable the support of TTF font files (disabled by default).
 
#define VG_FEATURE_FREETYPE_OTF   (0)
 Set this define to 1 to enable the support of OTF font files (disabled by default).
 
#define VG_FEATURE_FREETYPE_COLORED_EMOJI   (0)
 Set this define to 1 to enable the support of colored emoji (disabled by default).
 
#define VG_FEATURE_FONT_COMPLEX_LAYOUT   (0)
 Set this define to 1 to enable the support of complex layout (disabled by default). More...
 
#define VG_FEATURE_FONT_EXTERNAL   (0)
 Set this define to 1 to enable the support of external font files (disabled by default). More...
 
#define VG_FEATURE_FREETYPE_HEAP_SIZE   (80 * 1024)
 Configure this define to set the freetype heap size. More...
 
#define VG_LOG_INFO_ENABLED   (0)
 Configure this define to set the complex layouter heap size. More...
 
#define VG_LOG_DECLARE_MODULE()
 Declares the log module, once at the top of each source file that logs. More...
 
#define VG_LOG_ERROR_PRINT(fmt, ...)   (void)printf("[ERROR - MICROVG] : " fmt "\n", ## __VA_ARGS__)
 Prints an error log through "printf". The format has no trailing line return.
 
#define VG_LOG_INFO_PRINT(fmt, ...)   (void)printf("[INFO - MICROVG] : " fmt "\n", ## __VA_ARGS__)
 Prints an informative log through "printf". The format has no trailing line return.
 

Detailed Description

MicroEJ MicroVG library low level API: enable some features according to the hardware capacities.

Author
MicroEJ Developer Team

Definition in file vg_configuration.h.

Macro Definition Documentation

◆ VG_FEATURE_FONT

#define VG_FEATURE_FONT   VG_FEATURE_FONT_FREETYPE_VECTOR

Set this define to specify the implementation of the MicroVG' VectorFont (dynamic font loading and text rendering).

See also
VG_FEATURE_FONT_FREETYPE_VECTOR
VG_FEATURE_FONT_FREETYPE_BITMAP

When not set, a stub implementation is used. The application cannot load a font (and by consequence cannot draw a text).

Definition at line 144 of file vg_configuration.h.

◆ VG_FEATURE_FONT_COMPLEX_LAYOUT

#define VG_FEATURE_FONT_COMPLEX_LAYOUT   (0)

Set this define to 1 to enable the support of complex layout (disabled by default).

When set, the complex layout feature is disabled by default (the Freetype layout manager is used). See functions MICROVG_HELPER_set_complex_layout() and MICROVG_HELPER_has_complex_layouter().

Note: the complex layout feature is managed by the Harfbuzz engine. Harfbuzz is used beside Freetype, thus the FT_CONFIG_OPTION_USE_HARFBUZZ define is not needed. This implementation has been chosen to ease the replacement of harfbuzz by an other complex layouter.

Definition at line 181 of file vg_configuration.h.

◆ VG_FEATURE_FONT_EXTERNAL

#define VG_FEATURE_FONT_EXTERNAL   (0)

Set this define to 1 to enable the support of external font files (disabled by default).

When a font file is not available in the application classpath, the implementation tries to load it from an external resource system.

The VEE Port must embed the module "External Resource" and the BSP must implement "LLEXT_RES_impl.h" header file.

When not set, only the resources compiled with the application are used.

Definition at line 196 of file vg_configuration.h.

◆ VG_FEATURE_FONT_FREETYPE_BITMAP

#define VG_FEATURE_FONT_FREETYPE_BITMAP   (2)

Value of "VG_FEATURE_FONT" to use FreeTYPE as implementation of the MicroVG' VectorFont.

This implementation configures FreeTYPE to manipulate the font's glyphs as bitmaps. No renderer is required

Definition at line 97 of file vg_configuration.h.

◆ VG_FEATURE_FONT_FREETYPE_VECTOR

#define VG_FEATURE_FONT_FREETYPE_VECTOR   (1)

Value of "VG_FEATURE_FONT" to use FreeTYPE as implementation of the MicroVG's VectorFont.

This implementation configures FreeTYPE to manipulate the font's glyphs as a succession of vector paths. It requires a "vector" renderer.

Definition at line 88 of file vg_configuration.h.

◆ VG_FEATURE_FREETYPE_HEAP_SIZE

#define VG_FEATURE_FREETYPE_HEAP_SIZE   (80 * 1024)

Configure this define to set the freetype heap size.

The freetype heap size depends on the font used by the application

See also
MICROVG_MONITOR_HEAP in vg_helper.h to monitor the heap usage evolution.

Definition at line 206 of file vg_configuration.h.

◆ VG_FEATURE_GRADIENT

#define VG_FEATURE_GRADIENT   VG_FEATURE_GRADIENT_FULL

Set this define to specify the implementation of the MicroVG's LinearGradient (dynamic gradient creation and drawings with gradient).

See also
VG_FEATURE_GRADIENT_FULL
VG_FEATURE_GRADIENT_FIRST_COLOR

When not set, a stub implementation is used. No error is thrown at runtime when the application uses a gradient: the dynamic gradient are not created and the gradient rendering is not performed.

Definition at line 130 of file vg_configuration.h.

◆ VG_FEATURE_GRADIENT_FIRST_COLOR

#define VG_FEATURE_GRADIENT_FIRST_COLOR   (2)

Value of "VG_FEATURE_GRADIENT" to use a reduced implementation of the MicroVG's LinearGradient.

This implementation keeps only the first color set by the application when inializing a gradient.

Definition at line 75 of file vg_configuration.h.

◆ VG_FEATURE_GRADIENT_FULL

#define VG_FEATURE_GRADIENT_FULL   (1)

Value of "VG_FEATURE_GRADIENT" to use a full implementation of the MicroVG's LinearGradient.

This implementation holds an array of all colors and positions set by the application.

Definition at line 66 of file vg_configuration.h.

◆ VG_FEATURE_PATH

#define VG_FEATURE_PATH   VG_FEATURE_PATH_SINGLE_ARRAY

Set this define to embed the implementation of the MicroVG's Path (dynamic path creation and path rendering).

This implementation holds the path's commands and paramters defined by the application. The define value specifies how this data is stored (one or two arrays).

When not set, a stub implementation is used. No error is thrown at runtime when the application uses a path: the dynamic path are not created and the path rendering is not performed.

Definition at line 115 of file vg_configuration.h.

◆ VG_LOG_DECLARE_MODULE

#define VG_LOG_DECLARE_MODULE ( )

Declares the log module, once at the top of each source file that logs.

Empty: "printf" needs no declaration.

Definition at line 320 of file vg_configuration.h.

◆ VG_LOG_INFO_ENABLED

#define VG_LOG_INFO_ENABLED   (0)

Configure this define to set the complex layouter heap size.

See also
VG_FEATURE_FONT_COMPLEX_LAYOUT

The complex layouter heap size depends on the font used by the application

See also
MICROVG_MONITOR_HEAP in vg_helper.h to monitor the heap usage evolution.

Set this define to 1 to compile the informative logs (disabled by default).

The error logs are always compiled.

Definition at line 256 of file vg_configuration.h.