28 #include <LLVG_FONT_impl.h>
29 #include <LLVG_MATRIX_impl.h>
31 #include "ui_font_drawing.h"
32 #include "vg_drawing.h"
42 #define UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX GET_CUSTOM_FONT_FUNCTIONS_SUFFIX(UI_FONT_FORMAT_VG)
43 #define UI_FONT_DRAWING_VG_stringWidth CONCAT(UI_FONT_DRAWING_stringWidth_custom, UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
44 #define UI_FONT_DRAWING_VG_initializeRenderableStringSNIContext CONCAT( \
45 UI_FONT_DRAWING_initializeRenderableStringSNIContext_custom, UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
46 #define UI_FONT_DRAWING_VG_drawString CONCAT(UI_FONT_DRAWING_drawString_custom, UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
47 #define UI_FONT_DRAWING_VG_drawRenderableString CONCAT(UI_FONT_DRAWING_drawRenderableString_custom, \
48 UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
49 #define UI_FONT_DRAWING_VG_drawScaledStringBilinear CONCAT(UI_FONT_DRAWING_drawScaledStringBilinear_custom, \
50 UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
51 #define UI_FONT_DRAWING_VG_drawScaledRenderableStringBilinear CONCAT( \
52 UI_FONT_DRAWING_drawScaledRenderableStringBilinear_custom, UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
53 #define UI_FONT_DRAWING_VG_drawCharWithRotationBilinear CONCAT(UI_FONT_DRAWING_drawCharWithRotationBilinear_custom, \
54 UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
55 #define UI_FONT_DRAWING_VG_drawCharWithRotationNearestNeighbor CONCAT( \
56 UI_FONT_DRAWING_drawCharWithRotationNearestNeighbor_custom, UI_FONT_DRAWING_VG_FUNCTIONS_SUFFIX)
89 jint UI_FONT_DRAWING_VG_stringWidth(jchar *chars, jint length, MICROUI_Font *font) {
92 LLVG_FONT_DEFAULT_LETTER_SPACING));
96 DRAWING_Status UI_FONT_DRAWING_VG_drawString(MICROUI_GraphicsContext *gc, jchar *chars, jint length, MICROUI_Font *font,
99 jfloat translated_matrix[LLVG_MATRIX_SIZE];
100 LLVG_MATRIX_IMPL_setTranslate(translated_matrix, x, y);
102 0xff , LLVG_BLEND_SRC_OVER, LLVG_FONT_DEFAULT_LETTER_SPACING);
106 DRAWING_Status UI_FONT_DRAWING_VG_drawScaledStringBilinear(MICROUI_GraphicsContext *gc, jchar *chars, jint length,
107 MICROUI_Font *font, jint x, jint y, jfloat xRatio,
110 jfloat translated_matrix[LLVG_MATRIX_SIZE];
111 LLVG_MATRIX_IMPL_setScale(translated_matrix, xRatio, yRatio);
112 LLVG_MATRIX_IMPL_postTranslate(translated_matrix, x, y);
114 0xff , LLVG_BLEND_SRC_OVER, LLVG_FONT_DEFAULT_LETTER_SPACING);
118 DRAWING_Status UI_FONT_DRAWING_VG_drawCharWithRotationBilinear(MICROUI_GraphicsContext *gc, jchar c, MICROUI_Font *font,
119 jint x, jint y, jint xRotation, jint yRotation,
120 jfloat angle, jint alpha) {
122 jfloat translated_matrix[LLVG_MATRIX_SIZE];
125 jint relative_x_rotation = xRotation - x;
126 jint relative_y_rotation = yRotation - y;
129 LLVG_MATRIX_IMPL_setTranslate(translated_matrix, -relative_x_rotation, -relative_y_rotation);
130 LLVG_MATRIX_IMPL_postRotate(translated_matrix, angle);
131 LLVG_MATRIX_IMPL_postTranslate(translated_matrix, relative_x_rotation, relative_y_rotation);
134 LLVG_MATRIX_IMPL_postTranslate(translated_matrix, x, y);
137 LLVG_BLEND_SRC_OVER, LLVG_FONT_DEFAULT_LETTER_SPACING);
141 DRAWING_Status UI_FONT_DRAWING_VG_drawCharWithRotationNearestNeighbor(MICROUI_GraphicsContext *gc, jchar c,
142 MICROUI_Font *font, jint x, jint y,
143 jint xRotation, jint yRotation, jfloat angle,
145 return UI_FONT_DRAWING_VG_drawCharWithRotationBilinear(gc, c, font, x, y, xRotation, yRotation, angle, alpha);
Represents a MicroUI Font extended by MicroVG.
MICROUI_Font ui_font
The MicroUI Font header.
jint vg_font_size
The size to apply on the MicroVG Font.
jint vg_font_handle
The identifier of the MicroVG Font.
MicroEJ MicroVG library low level API: implementation over FreeType.