1
0
Fork 0
forked from Miroirs/x49gp

drop all custom fonts code and assets

This commit is contained in:
Gwenhael Le Moine 2024-11-05 16:38:27 +01:00
parent a6fefc2cb5
commit b8614acbae
No known key found for this signature in database
GPG key ID: FDFE3669426707A7
84 changed files with 0 additions and 1353 deletions

View file

@ -123,9 +123,6 @@ SRCS = ./src/x49gpng/main.c \
./src/x49gpng/s3c2410_arm.c \
./src/x49gpng/ui.c \
./src/x49gpng/timer.c \
./src/x49gpng/ui_tiny_font.c \
./src/x49gpng/ui_regular_font.c \
./src/x49gpng/ui_symbol.c \
./src/x49gpng/gdbstub.c \
./src/x49gpng/block.c \
./src/x49gpng/options.c

View file

@ -1,6 +0,0 @@
#define tiny_A_width 5
#define tiny_A_height 7
#define tiny_A_x_hot 0
#define tiny_A_y_hot 6
static unsigned char tiny_A_bits[] = {
0x06, 0x09, 0x09, 0x0f, 0x09, 0x09, 0x09};

View file

@ -1,6 +0,0 @@
#define tiny_B_width 5
#define tiny_B_height 7
#define tiny_B_x_hot 0
#define tiny_B_y_hot 6
static unsigned char tiny_B_bits[] = {
0x07, 0x09, 0x09, 0x07, 0x09, 0x09, 0x07};

View file

@ -1,6 +0,0 @@
#define tiny_C_width 5
#define tiny_C_height 7
#define tiny_C_x_hot 0
#define tiny_C_y_hot 6
static unsigned char tiny_C_bits[] = {
0x06, 0x09, 0x01, 0x01, 0x01, 0x09, 0x06};

View file

@ -1,6 +0,0 @@
#define tiny_D_width 5
#define tiny_D_height 7
#define tiny_D_x_hot 0
#define tiny_D_y_hot 6
static unsigned char tiny_D_bits[] = {
0x07, 0x09, 0x09, 0x09, 0x09, 0x09, 0x07};

View file

@ -1,6 +0,0 @@
#define tiny_E_width 4
#define tiny_E_height 7
#define tiny_E_x_hot 0
#define tiny_E_y_hot 6
static unsigned char tiny_E_bits[] = {
0x17, 0x01, 0x01, 0x03, 0x01, 0x01, 0x17};

View file

@ -1,6 +0,0 @@
#define tiny_F_width 4
#define tiny_F_height 7
#define tiny_F_x_hot 0
#define tiny_F_y_hot 6
static unsigned char tiny_F_bits[] = {
0x07, 0x01, 0x01, 0x03, 0x01, 0x01, 0x01};

View file

@ -1,6 +0,0 @@
#define tiny_G_width 6
#define tiny_G_height 7
#define tiny_G_x_hot 0
#define tiny_G_y_hot 6
static unsigned char tiny_G_bits[] = {
0x0e, 0x11, 0x01, 0x01, 0x19, 0x11, 0x0e};

View file

@ -1,6 +0,0 @@
#define tiny_H_width 5
#define tiny_H_height 7
#define tiny_H_x_hot 0
#define tiny_H_y_hot 6
static unsigned char tiny_H_bits[] = {
0x09, 0x09, 0x09, 0x0f, 0x09, 0x09, 0x09};

View file

@ -1,6 +0,0 @@
#define tiny_I_width 4
#define tiny_I_height 7
#define tiny_I_x_hot 0
#define tiny_I_y_hot 6
static unsigned char tiny_I_bits[] = {
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02};

View file

@ -1,6 +0,0 @@
#define tiny_J_width 5
#define tiny_J_height 7
#define tiny_J_x_hot 0
#define tiny_J_y_hot 6
static unsigned char tiny_J_bits[] = {
0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x06};

View file

@ -1,6 +0,0 @@
#define tiny_K_width 5
#define tiny_K_height 7
#define tiny_K_x_hot 0
#define tiny_K_y_hot 6
static unsigned char tiny_K_bits[] = {
0x09, 0x05, 0x05, 0x03, 0x05, 0x05, 0x09};

View file

@ -1,6 +0,0 @@
#define tiny_L_width 4
#define tiny_L_height 7
#define tiny_L_x_hot 0
#define tiny_L_y_hot 6
static unsigned char tiny_L_bits[] = {
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07};

View file

@ -1,6 +0,0 @@
#define tiny_M_width 6
#define tiny_M_height 7
#define tiny_M_x_hot 0
#define tiny_M_y_hot 6
static unsigned char tiny_M_bits[] = {
0x11, 0x1b, 0x15, 0x15, 0x11, 0x11, 0x11};

View file

@ -1,6 +0,0 @@
#define tiny_N_width 5
#define tiny_N_height 7
#define tiny_N_x_hot 0
#define tiny_N_y_hot 6
static unsigned char tiny_N_bits[] = {
0x09, 0x0b, 0x0b, 0x0d, 0x0d, 0x09, 0x09};

View file

@ -1,6 +0,0 @@
#define tiny_O_width 5
#define tiny_O_height 7
#define tiny_O_x_hot 0
#define tiny_O_y_hot 6
static unsigned char tiny_O_bits[] = {
0x06, 0x09, 0x09, 0x09, 0x09, 0x09, 0x06};

View file

@ -1,6 +0,0 @@
#define tiny_P_width 5
#define tiny_P_height 7
#define tiny_P_x_hot 0
#define tiny_P_y_hot 6
static unsigned char tiny_P_bits[] = {
0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01};

View file

@ -1,6 +0,0 @@
#define tiny_Q_width 6
#define tiny_Q_height 7
#define tiny_Q_x_hot 0
#define tiny_Q_y_hot 6
static unsigned char tiny_Q_bits[] = {
0x0e, 0x11, 0x11, 0x11, 0x15, 0x09, 0x16};

View file

@ -1,6 +0,0 @@
#define tiny_R_width 5
#define tiny_R_height 7
#define tiny_R_x_hot 0
#define tiny_R_y_hot 6
static unsigned char tiny_R_bits[] = {
0x07, 0x09, 0x09, 0x07, 0x05, 0x09, 0x09};

View file

@ -1,6 +0,0 @@
#define tiny_S_width 5
#define tiny_S_height 7
#define tiny_S_x_hot 0
#define tiny_S_y_hot 6
static unsigned char tiny_S_bits[] = {
0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06};

View file

@ -1,6 +0,0 @@
#define tiny_T_width 5
#define tiny_T_height 7
#define tiny_T_x_hot 1
#define tiny_T_y_hot 6
static unsigned char tiny_T_bits[] = {
0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04};

View file

@ -1,6 +0,0 @@
#define tiny_U_width 5
#define tiny_U_height 7
#define tiny_U_x_hot 0
#define tiny_U_y_hot 6
static unsigned char tiny_U_bits[] = {
0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x06};

View file

@ -1,6 +0,0 @@
#define tiny_V_width 5
#define tiny_V_height 7
#define tiny_V_x_hot 0
#define tiny_V_y_hot 6
static unsigned char tiny_V_bits[] = {
0x09, 0x09, 0x09, 0x09, 0x09, 0x06, 0x06};

View file

@ -1,6 +0,0 @@
#define tiny_W_width 6
#define tiny_W_height 7
#define tiny_W_x_hot 0
#define tiny_W_y_hot 6
static unsigned char tiny_W_bits[] = {
0x11, 0x11, 0x11, 0x15, 0x15, 0x1b, 0x11};

View file

@ -1,6 +0,0 @@
#define tiny_X_width 5
#define tiny_X_height 7
#define tiny_X_x_hot 0
#define tiny_X_y_hot 6
static unsigned char tiny_X_bits[] = {
0x09, 0x09, 0x06, 0x06, 0x06, 0x09, 0x09};

View file

@ -1,6 +0,0 @@
#define tiny_Y_width 6
#define tiny_Y_height 7
#define tiny_Y_x_hot 0
#define tiny_Y_y_hot 6
static unsigned char tiny_Y_bits[] = {
0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x04};

View file

@ -1,6 +0,0 @@
#define tiny_Z_width 5
#define tiny_Z_height 7
#define tiny_Z_x_hot 0
#define tiny_Z_y_hot 6
static unsigned char tiny_Z_bits[] = {
0x0f, 0x08, 0x04, 0x04, 0x02, 0x01, 0x0f};

View file

@ -1,6 +0,0 @@
#define tiny_i_width 4
#define tiny_i_height 7
#define tiny_i_x_hot 0
#define tiny_i_y_hot 6
static unsigned char tiny_i_bits[] = {
0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02};

View file

@ -1,6 +0,0 @@
#define tiny_ampersand_width 6
#define tiny_ampersand_height 7
#define tiny_ampersand_x_hot 0
#define tiny_ampersand_y_hot 6
static unsigned char tiny_ampersand_bits[] = {
0x06, 0x09, 0x06, 0x16, 0x09, 0x09, 0x16};

View file

@ -1,6 +0,0 @@
#define tiny_arrowleft_width 7
#define tiny_arrowleft_height 5
#define tiny_arrowleft_x_hot 0
#define tiny_arrowleft_y_hot 4
static unsigned char tiny_arrowleft_bits[] = {
0x02, 0x3f, 0x02, 0x00, 0x00 };

View file

@ -1,6 +0,0 @@
#define tiny_arrowright_width 7
#define tiny_arrowright_height 5
#define tiny_arrowright_x_hot 0
#define tiny_arrowright_y_hot 4
static unsigned char tiny_arrowright_bits[] = {
0x10, 0x3f, 0x10, 0x00, 0x00 };

View file

@ -1,6 +0,0 @@
#define tiny_braceleft_width 4
#define tiny_braceleft_height 9
#define tiny_braceleft_x_hot 0
#define tiny_braceleft_y_hot 7
static unsigned char tiny_braceleft_bits[] = {
0x04, 0x02, 0x02, 0x02, 0x01, 0x02, 0x02, 0x02, 0x04};

View file

@ -1,6 +0,0 @@
#define tiny_braceright_width 4
#define tiny_braceright_height 9
#define tiny_braceright_x_hot 0
#define tiny_braceright_y_hot 7
static unsigned char tiny_braceright_bits[] = {
0x01, 0x02, 0x02, 0x02, 0x04, 0x02, 0x02, 0x02, 0x01};

View file

@ -1,6 +0,0 @@
#define tiny_bracketleft_width 4
#define tiny_bracketleft_height 9
#define tiny_bracketleft_x_hot 0
#define tiny_bracketleft_y_hot 7
static unsigned char tiny_bracketleft_bits[] = {
0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07};

View file

@ -1,6 +0,0 @@
#define tiny_bracketright_width 4
#define tiny_bracketright_height 9
#define tiny_bracketright_x_hot 0
#define tiny_bracketright_y_hot 7
static unsigned char tiny_bracketright_bits[] = {
0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07};

View file

@ -1,6 +0,0 @@
#define tiny_colon_width 3
#define tiny_colon_height 6
#define tiny_colon_x_hot 0
#define tiny_colon_y_hot 5
static unsigned char tiny_colon_bits[] = {
0x03, 0x03, 0x00, 0x00, 0x03, 0x03 };

View file

@ -1,6 +0,0 @@
#define tiny_comma_width 4
#define tiny_comma_height 3
#define tiny_comma_x_hot 0
#define tiny_comma_y_hot 1
static unsigned char tiny_comma_bits[] = {
0x06, 0x06, 0x03};

View file

@ -1,6 +0,0 @@
#define tiny_equal_width 5
#define tiny_equal_height 5
#define tiny_equal_x_hot 0
#define tiny_equal_y_hot 4
static unsigned char tiny_equal_bits[] = {
0x0f, 0x00, 0x0f, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_greater_width 5
#define tiny_greater_height 7
#define tiny_greater_x_hot 0
#define tiny_greater_y_hot 6
static unsigned char tiny_greater_bits[] = {
0x01, 0x02, 0x04, 0x08, 0x04, 0x02, 0x01};

View file

@ -1,6 +0,0 @@
#define tiny_guillemotleft_width 11
#define tiny_guillemotleft_height 6
#define tiny_guillemotleft_x_hot 0
#define tiny_guillemotleft_y_hot 5
static unsigned char tiny_guillemotleft_bits[] = {
0x18, 0x03, 0xc6, 0x00, 0x21, 0x00, 0xc6, 0x00, 0x18, 0x03, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_guillemotright_width 11
#define tiny_guillemotright_height 6
#define tiny_guillemotright_x_hot 0
#define tiny_guillemotright_y_hot 5
static unsigned char tiny_guillemotright_bits[] = {
0x63, 0x00, 0x8c, 0x01, 0x10, 0x02, 0x8c, 0x01, 0x63, 0x00, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_hyphen_width 5
#define tiny_hyphen_height 4
#define tiny_hyphen_x_hot 0
#define tiny_hyphen_y_hot 3
static unsigned char tiny_hyphen_bits[] = {
0x0f, 0x00, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_large_comma_width 4
#define tiny_large_comma_height 6
#define tiny_large_comma_x_hot 0
#define tiny_large_comma_y_hot 2
static unsigned char tiny_large_comma_bits[] = {
0x07, 0x07, 0x07, 0x04, 0x02, 0x01 };

View file

@ -1,6 +0,0 @@
#define tiny_less_width 5
#define tiny_less_height 7
#define tiny_less_x_hot 0
#define tiny_less_y_hot 6
static unsigned char tiny_less_bits[] = {
0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08};

View file

@ -1,7 +0,0 @@
#define tiny_math_arrowleft_width 12
#define tiny_math_arrowleft_height 6
#define tiny_math_arrowleft_x_hot 0
#define tiny_math_arrowleft_y_hot 5
static unsigned char tiny_math_arrowleft_bits[] = {
0x10, 0x00, 0x1c, 0x00, 0xff, 0x07, 0x1c, 0x00, 0x10, 0x00, 0x00, 0x00
};

View file

@ -1,7 +0,0 @@
#define tiny_math_arrowright_width 12
#define tiny_math_arrowright_height 6
#define tiny_math_arrowright_x_hot 0
#define tiny_math_arrowright_y_hot 5
static unsigned char tiny_math_arrowright_bits[] = {
0x40, 0x00, 0xc0, 0x01, 0xff, 0x07, 0xc0, 0x01, 0x40, 0x00, 0x00, 0x00
};

View file

@ -1,7 +0,0 @@
#define tiny_math_downarrowleft_width 12
#define tiny_math_downarrowleft_height 8
#define tiny_math_downarrowleft_x_hot 0
#define tiny_math_downarrowleft_y_hot 7
static unsigned char tiny_math_downarrowleft_bits[] = {
0x00, 0x04, 0x00, 0x04, 0x10, 0x04, 0x1c, 0x04, 0xff, 0x07, 0x1c, 0x00,
0x10, 0x00, 0x00, 0x00 };

View file

@ -1,7 +0,0 @@
#define tiny_math_downarrowright_width 12
#define tiny_math_downarrowright_height 8
#define tiny_math_downarrowright_x_hot 0
#define tiny_math_downarrowright_y_hot 7
static unsigned char tiny_math_downarrowright_bits[] = {
0x01, 0x00, 0x01, 0x00, 0x41, 0x00, 0xc1, 0x01, 0xff, 0x07, 0xc0, 0x01,
0x40, 0x00, 0x00, 0x00 };

View file

@ -1,6 +0,0 @@
#define tiny_math_e_width 6
#define tiny_math_e_height 6
#define tiny_math_e_x_hot 0
#define tiny_math_e_y_hot 5
static unsigned char tiny_math_e_bits[] = {
0x0c, 0x12, 0x09, 0x07, 0x11, 0x0e};

View file

@ -1,6 +0,0 @@
#define tiny_math_equal_width 7
#define tiny_math_equal_height 6
#define tiny_math_equal_x_hot 0
#define tiny_math_equal_y_hot 5
static unsigned char tiny_math_equal_bits[] = {
0x3f, 0x00, 0x00, 0x3f, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_math_greater_width 6
#define tiny_math_greater_height 7
#define tiny_math_greater_x_hot 0
#define tiny_math_greater_y_hot 6
static unsigned char tiny_math_greater_bits[] = {
0x03, 0x0c, 0x10, 0x0c, 0x03, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_math_greaterequal_width 6
#define tiny_math_greaterequal_height 8
#define tiny_math_greaterequal_x_hot 0
#define tiny_math_greaterequal_y_hot 7
static unsigned char tiny_math_greaterequal_bits[] = {
0x03, 0x0c, 0x10, 0x0c, 0x03, 0x30, 0x0c, 0x03};

View file

@ -1,6 +0,0 @@
#define tiny_math_infinity_width 13
#define tiny_math_infinity_height 5
#define tiny_math_infinity_x_hot 0
#define tiny_math_infinity_y_hot 4
static unsigned char tiny_math_infinity_bits[] = {
0x9e, 0x07, 0x61, 0x08, 0x61, 0x08, 0x9e, 0x07, 0x00, 0x00 };

View file

@ -1,7 +0,0 @@
#define tiny_math_integral_width 9
#define tiny_math_integral_height 10
#define tiny_math_integral_x_hot 0
#define tiny_math_integral_y_hot 8
static unsigned char tiny_math_integral_bits[] = {
0x60, 0x00, 0x90, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00,
0x08, 0x00, 0x08, 0x00, 0x09, 0x00, 0x06, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_math_less_width 6
#define tiny_math_less_height 7
#define tiny_math_less_x_hot 0
#define tiny_math_less_y_hot 6
static unsigned char tiny_math_less_bits[] = {
0x18, 0x06, 0x01, 0x06, 0x18, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_math_lessequal_width 6
#define tiny_math_lessequal_height 8
#define tiny_math_lessequal_x_hot 0
#define tiny_math_lessequal_y_hot 7
static unsigned char tiny_math_lessequal_bits[] = {
0x30, 0x0c, 0x02, 0x0c, 0x30, 0x03, 0x0c, 0x30};

View file

@ -1,6 +0,0 @@
#define tiny_math_notequal_width 7
#define tiny_math_notequal_height 8
#define tiny_math_notequal_x_hot 0
#define tiny_math_notequal_y_hot 7
static unsigned char tiny_math_notequal_bits[] = {
0x08, 0x08, 0x3f, 0x08, 0x04, 0x3f, 0x04, 0x04};

View file

@ -1,7 +0,0 @@
#define tiny_math_numbersign_width 10
#define tiny_math_numbersign_height 8
#define tiny_math_numbersign_x_hot 0
#define tiny_math_numbersign_y_hot 7
static unsigned char tiny_math_numbersign_bits[] = {
0x48, 0x00, 0x48, 0x00, 0xfe, 0x01, 0x48, 0x00, 0x24, 0x00, 0xff, 0x00,
0x24, 0x00, 0x24, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_math_partialdiff_width 6
#define tiny_math_partialdiff_height 8
#define tiny_math_partialdiff_x_hot 0
#define tiny_math_partialdiff_y_hot 7
static unsigned char tiny_math_partialdiff_bits[] = {
0x04, 0x08, 0x08, 0x1e, 0x11, 0x11, 0x11, 0x0e};

View file

@ -1,7 +0,0 @@
#define tiny_math_pi_width 9
#define tiny_math_pi_height 6
#define tiny_math_pi_x_hot 0
#define tiny_math_pi_y_hot 5
static unsigned char tiny_math_pi_bits[] = {
0xfe, 0x00, 0x25, 0x00, 0x24, 0x00, 0x24, 0x00, 0xa4, 0x00, 0x42, 0x00
};

View file

@ -1,6 +0,0 @@
#define tiny_math_radical_width 8
#define tiny_math_radical_height 11
#define tiny_math_radical_x_hot 0
#define tiny_math_radical_y_hot 8
static unsigned char tiny_math_radical_bits[] = {
0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x17, 0x14, 0x1c, 0x08, 0x08};

View file

@ -1,6 +0,0 @@
#define tiny_math_summation_width 6
#define tiny_math_summation_height 9
#define tiny_math_summation_x_hot 0
#define tiny_math_summation_y_hot 7
static unsigned char tiny_math_summation_bits[] = {
0x1f, 0x11, 0x02, 0x04, 0x08, 0x04, 0x02, 0x11, 0x1f};

View file

@ -1,6 +0,0 @@
#define tiny_math_x_width 8
#define tiny_math_x_height 6
#define tiny_math_x_x_hot 0
#define tiny_math_x_y_hot 5
static unsigned char tiny_math_x_bits[] = {
0x26, 0x14, 0x08, 0x14, 0x53, 0x21};

View file

@ -1,6 +0,0 @@
#define tiny_math_y_width 7
#define tiny_math_y_height 9
#define tiny_math_y_x_hot 1
#define tiny_math_y_y_hot 6
static unsigned char tiny_math_y_bits[] = {
0x26, 0x24, 0x24, 0x14, 0x18, 0x08, 0x08, 0x05, 0x03};

View file

@ -1,6 +0,0 @@
#define tiny_notdef_width 4
#define tiny_notdef_height 5
#define tiny_notdef_x_hot 0
#define tiny_notdef_y_hot 4
static unsigned char tiny_notdef_bits[] = {
0x07, 0x07, 0x07, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_numbersign_width 6
#define tiny_numbersign_height 6
#define tiny_numbersign_x_hot 0
#define tiny_numbersign_y_hot 5
static unsigned char tiny_numbersign_bits[] = {
0x0a, 0x1f, 0x0a, 0x0a, 0x1f, 0x0a};

View file

@ -1,6 +0,0 @@
#define tiny_one_width 3
#define tiny_one_height 7
#define tiny_one_x_hot 0
#define tiny_one_y_hot 6
static unsigned char tiny_one_bits[] = {
0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02};

View file

@ -1,6 +0,0 @@
#define tiny_overscore_width 6
#define tiny_overscore_height 9
#define tiny_overscore_x_hot 1
#define tiny_overscore_y_hot 8
static unsigned char tiny_overscore_bits[] = {
0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_parenleft_width 4
#define tiny_parenleft_height 9
#define tiny_parenleft_x_hot 0
#define tiny_parenleft_y_hot 7
static unsigned char tiny_parenleft_bits[] = {
0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x04};

View file

@ -1,6 +0,0 @@
#define tiny_parenright_width 4
#define tiny_parenright_height 9
#define tiny_parenright_x_hot 0
#define tiny_parenright_y_hot 7
static unsigned char tiny_parenright_bits[] = {
0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01};

View file

@ -1,6 +0,0 @@
#define tiny_period_width 3
#define tiny_period_height 2
#define tiny_period_x_hot 0
#define tiny_period_y_hot 1
static unsigned char tiny_period_bits[] = {
0x03, 0x03};

View file

@ -1,6 +0,0 @@
#define tiny_quotedbl_width 4
#define tiny_quotedbl_height 7
#define tiny_quotedbl_x_hot 0
#define tiny_quotedbl_y_hot 6
static unsigned char tiny_quotedbl_bits[] = {
0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_slash_width 4
#define tiny_slash_height 7
#define tiny_slash_x_hot 0
#define tiny_slash_y_hot 6
static unsigned char tiny_slash_bits[] = {
0x04, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01};

View file

@ -1,6 +0,0 @@
#define tiny_three_width 5
#define tiny_three_height 7
#define tiny_three_x_hot 0
#define tiny_three_y_hot 6
static unsigned char tiny_three_bits[] = {
0x06, 0x09, 0x08, 0x06, 0x08, 0x09, 0x06};

View file

@ -1,6 +0,0 @@
#define tiny_two_width 5
#define tiny_two_height 7
#define tiny_two_x_hot 0
#define tiny_two_y_hot 6
static unsigned char tiny_two_bits[] = {
0x06, 0x09, 0x08, 0x08, 0x04, 0x02, 0x0f};

View file

@ -1,6 +0,0 @@
#define tiny_twosuperior_width 5
#define tiny_twosuperior_height 9
#define tiny_twosuperior_x_hot 0
#define tiny_twosuperior_y_hot 8
static unsigned char tiny_twosuperior_bits[] = {
0x02, 0x05, 0x04, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_underscore_width 6
#define tiny_underscore_height 3
#define tiny_underscore_x_hot 1
#define tiny_underscore_y_hot 0
static unsigned char tiny_underscore_bits[] = {
0x00, 0x00, 0x3f};

View file

@ -1,6 +0,0 @@
#define tiny_xsuperior_width 5
#define tiny_xsuperior_height 9
#define tiny_xsuperior_x_hot 0
#define tiny_xsuperior_y_hot 8
static unsigned char tiny_xsuperior_bits[] = {
0x12, 0x0c, 0x04, 0x0a, 0x09, 0x00, 0x00, 0x00, 0x00};

View file

@ -1,6 +0,0 @@
#define tiny_zero_width 5
#define tiny_zero_height 7
#define tiny_zero_x_hot 0
#define tiny_zero_y_hot 6
static unsigned char tiny_zero_bits[] = {
0x06, 0x09, 0x09, 0x09, 0x09, 0x09, 0x06};

View file

@ -20,8 +20,6 @@
#include "ui.h"
#include "s3c2410.h"
#include "ui_bitmaps.h"
#include "ui_tiny_font.h"
#include "ui_regular_font.h"
#include "gdbstub.h"

View file

@ -1,310 +0,0 @@
#include <stdbool.h>
#include <stddef.h>
#include <gdk/gdk.h>
#include <cairo.h>
#include "options.h"
#include "ui_symbol.h"
#include "ui_glyphname.h"
#include "ui_regular_font.h"
static void _regular_font_symbol_path( cairo_t* cr, double size, double xoffset, double yoffset, const x49gp_symbol_t* symbol )
{
const symbol_path_t* path;
const cairo_path_data_t* data;
path = symbol->path;
if ( NULL == path )
return;
cairo_move_to( cr, xoffset, yoffset );
for ( int i = 0; i < path->num_data; i += path->data[ i ].header.length ) {
data = &path->data[ i ];
switch ( data->header.type ) {
case CAIRO_PATH_MOVE_TO:
cairo_rel_move_to( cr, size * data[ 1 ].point.x, -size * data[ 1 ].point.y );
break;
case CAIRO_PATH_LINE_TO:
cairo_rel_line_to( cr, size * data[ 1 ].point.x, -size * data[ 1 ].point.y );
break;
case CAIRO_PATH_CURVE_TO:
cairo_rel_curve_to( cr, size * data[ 1 ].point.x, -size * data[ 1 ].point.y, size * data[ 2 ].point.x,
-size * data[ 2 ].point.y, size * data[ 3 ].point.x, -size * data[ 3 ].point.y );
break;
case CAIRO_PATH_CLOSE_PATH:
cairo_close_path( cr );
break;
}
}
}
static bool _regular_font_lookup_glyph( const char* name, int namelen, gunichar* glyph )
{
for ( int i = 0; i < NR_GLYPHNAMES; i++ ) {
if ( ( strlen( x49gp_glyphs[ i ].name ) == namelen ) && !strncmp( x49gp_glyphs[ i ].name, name, namelen ) ) {
if ( glyph )
*glyph = x49gp_glyphs[ i ].unichar;
return true;
}
}
return false;
}
static int _regular_font_text_strlen( const char* text )
{
const char *p, *q;
char c;
int namelen;
int n = 0;
p = text;
while ( ( c = *p++ ) ) {
if ( c != '\\' ) {
n++;
continue;
}
q = p;
while ( *q ) {
if ( ( *q == '\\' ) || ( *q == ' ' ) )
break;
q++;
}
if ( q == p ) {
n++;
p++;
continue;
}
namelen = q - p;
if ( *q == ' ' )
q++;
if ( symbol_lookup_glyph_by_name( p, namelen, NULL ) ) {
p = q;
n++;
continue;
}
if ( _regular_font_lookup_glyph( p, namelen, NULL ) ) {
p = q;
n++;
continue;
}
/*
* Insert symbol .notdef here...
*/
p = q;
n++;
}
return n;
}
static int _regular_font_text_to_ucs4( const char* text, gunichar** ucs4p )
{
const char *p, *q;
gunichar glyph;
gunichar* ucs4;
char c;
int namelen;
int i = 0;
int n = _regular_font_text_strlen( text );
if ( n <= 0 )
return n;
ucs4 = malloc( n * sizeof( gunichar ) );
p = text;
while ( ( c = *p++ ) ) {
if ( i == n ) {
free( ucs4 );
return -1;
}
if ( c != '\\' ) {
ucs4[ i++ ] = c;
continue;
}
q = p;
while ( *q ) {
if ( ( *q == '\\' ) || ( *q == ' ' ) )
break;
q++;
}
if ( q == p ) {
ucs4[ i++ ] = *p++;
continue;
}
namelen = q - p;
if ( *q == ' ' )
q++;
if ( symbol_lookup_glyph_by_name( p, namelen, &glyph ) ) {
ucs4[ i++ ] = glyph;
p = q;
continue;
}
if ( _regular_font_lookup_glyph( p, namelen, &glyph ) ) {
ucs4[ i++ ] = glyph;
p = q;
continue;
}
/*
* Insert symbol .notdef here...
*/
ucs4[ i++ ] = 0xe000;
p = q;
}
*ucs4p = ucs4;
return n;
}
static void _regular_font_vtext_path( cairo_t* cr, double size, double x, double y, va_list ap )
{
cairo_text_extents_t extents;
cairo_font_weight_t weight;
cairo_font_slant_t slant;
const x49gp_symbol_t* symbol;
const char* text;
gunichar* ucs4;
char out[ 8 ];
int bytes;
int len;
slant = va_arg( ap, cairo_font_slant_t );
weight = va_arg( ap, cairo_font_weight_t );
text = va_arg( ap, const char* );
cairo_select_font_face( cr, opt.font, slant, weight );
cairo_set_font_size( cr, size );
ucs4 = NULL;
len = _regular_font_text_to_ucs4( text, &ucs4 );
if ( len <= 0 )
return;
for ( int j = 0; j < len; j++ ) {
if ( g_unichar_type( ucs4[ j ] ) == G_UNICODE_PRIVATE_USE ) {
/*
* Draw Symbol, Increment x...
*/
symbol = symbol_get_by_glyph( ucs4[ j ] );
if ( NULL == symbol )
symbol = symbol_get_by_glyph( 0xe000 );
size *= symbol->prescale;
_regular_font_symbol_path( cr, size, x, y, symbol );
x += size * symbol->x_advance;
y -= size * symbol->y_advance;
size *= symbol->postscale;
if ( symbol->prescale * symbol->postscale != 1. )
cairo_set_font_size( cr, size );
continue;
}
bytes = g_unichar_to_utf8( ucs4[ j ], out );
out[ bytes ] = '\0';
cairo_text_extents( cr, out, &extents );
cairo_move_to( cr, x, y );
cairo_text_path( cr, out );
x += extents.x_advance;
y += extents.y_advance;
}
free( ucs4 );
}
void regular_font_measure_text( cairo_t* cr, double size, double* x_bearing, double* y_bearing, double* width, double* height,
double* ascent, double* descent, ... )
{
va_list ap0, ap1;
cairo_font_extents_t font_extents;
cairo_font_weight_t weight;
cairo_font_slant_t slant;
double x1, y1, x2, y2, a, d;
const char* text;
va_start( ap0, descent );
va_copy( ap1, ap0 );
_regular_font_vtext_path( cr, size, 0.0, 0.0, ap0 );
va_end( ap0 );
cairo_fill_extents( cr, &x1, &y1, &x2, &y2 );
if ( y2 < 0.0 )
y2 = 0.0;
a = 0.0;
d = 0.0;
slant = va_arg( ap1, cairo_font_slant_t );
weight = va_arg( ap1, cairo_font_weight_t );
text = va_arg( ap1, const char* );
( void )text;
cairo_select_font_face( cr, opt.font, slant, weight );
cairo_set_font_size( cr, size );
cairo_font_extents( cr, &font_extents );
/*
* Cairo seems to return overall height in ascent,
* so fix this by calculating ascent = height - descent.
*/
if ( font_extents.ascent - font_extents.descent > a )
a = font_extents.ascent - font_extents.descent;
if ( font_extents.descent > -d )
d = -font_extents.descent;
*x_bearing = x1;
*y_bearing = y2;
*width = x2 - x1;
*height = y2 - y1;
*ascent = a;
*descent = d;
va_end( ap1 );
}
void regular_font_draw_text( cairo_t* cr, GdkColor* color, double size, double line_width, int xoffset, int yoffset, ... )
{
va_list ap;
va_start( ap, yoffset );
cairo_set_line_width( cr, line_width );
cairo_set_source_rgb( cr, ( ( double )color->red ) / 65535.0, ( ( double )color->green ) / 65535.0,
( ( double )color->blue ) / 65535.0 );
_regular_font_vtext_path( cr, size, xoffset, yoffset, ap );
if ( line_width == 0.0 )
cairo_fill( cr );
else
cairo_stroke( cr );
va_end( ap );
}

View file

@ -1,13 +0,0 @@
/* $Id: bitmap_font.h,v 1.5 2008/12/11 12:18:17 ecd Exp $
*/
#ifndef _REGULAR_FONT_H
#define _REGULAR_FONT_H 1
#include <cairo.h>
void regular_font_measure_text( cairo_t* cr, double size, double* x_bearing, double* y_bearing, double* width, double* height,
double* ascent, double* descent, ... );
void regular_font_draw_text( cairo_t* cr, GdkColor* color, double size, double line_width, int xoffset, int yoffset, ... );
#endif /* !(_REGULAR_FONT_H) */

View file

@ -1,516 +0,0 @@
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <gdk/gdk.h>
#include "ui_tiny_font.h"
#include "bitmaps/tiny_notdef.xbm"
#include "bitmaps/tiny_quotedbl.xbm"
#include "bitmaps/tiny_numbersign.xbm"
#include "bitmaps/tiny_ampersand.xbm"
#include "bitmaps/tiny_parenleft.xbm"
#include "bitmaps/tiny_parenright.xbm"
#include "bitmaps/tiny_comma.xbm"
#include "bitmaps/tiny_hyphen.xbm"
#include "bitmaps/tiny_period.xbm"
#include "bitmaps/tiny_slash.xbm"
#include "bitmaps/tiny_colon.xbm"
#include "bitmaps/tiny_less.xbm"
#include "bitmaps/tiny_equal.xbm"
#include "bitmaps/tiny_greater.xbm"
#include "bitmaps/tiny_bracketleft.xbm"
#include "bitmaps/tiny_bracketright.xbm"
#include "bitmaps/tiny_underscore.xbm"
#include "bitmaps/tiny_braceleft.xbm"
#include "bitmaps/tiny_braceright.xbm"
#include "bitmaps/tiny_guillemotleft.xbm"
#include "bitmaps/tiny_guillemotright.xbm"
#include "bitmaps/tiny_arrowleft.xbm"
#include "bitmaps/tiny_arrowright.xbm"
#include "bitmaps/tiny_large_comma.xbm"
#include "bitmaps/tiny_overscore.xbm"
#include "bitmaps/tiny_xsuperior.xbm"
#include "bitmaps/tiny_twosuperior.xbm"
#include "bitmaps/tiny_math_e.xbm"
#include "bitmaps/tiny_math_x.xbm"
#include "bitmaps/tiny_math_y.xbm"
#include "bitmaps/tiny_math_pi.xbm"
#include "bitmaps/tiny_math_summation.xbm"
#include "bitmaps/tiny_math_radical.xbm"
#include "bitmaps/tiny_math_partialdiff.xbm"
#include "bitmaps/tiny_math_integral.xbm"
#include "bitmaps/tiny_math_infinity.xbm"
#include "bitmaps/tiny_math_numbersign.xbm"
#include "bitmaps/tiny_math_less.xbm"
#include "bitmaps/tiny_math_greater.xbm"
#include "bitmaps/tiny_math_lessequal.xbm"
#include "bitmaps/tiny_math_greaterequal.xbm"
#include "bitmaps/tiny_math_equal.xbm"
#include "bitmaps/tiny_math_notequal.xbm"
#include "bitmaps/tiny_math_arrowleft.xbm"
#include "bitmaps/tiny_math_arrowright.xbm"
#include "bitmaps/tiny_math_downarrowleft.xbm"
#include "bitmaps/tiny_math_downarrowright.xbm"
#include "bitmaps/tiny_zero.xbm"
#include "bitmaps/tiny_one.xbm"
#include "bitmaps/tiny_two.xbm"
#include "bitmaps/tiny_three.xbm"
#include "bitmaps/tiny_A.xbm"
#include "bitmaps/tiny_B.xbm"
#include "bitmaps/tiny_C.xbm"
#include "bitmaps/tiny_D.xbm"
#include "bitmaps/tiny_E.xbm"
#include "bitmaps/tiny_F.xbm"
#include "bitmaps/tiny_G.xbm"
#include "bitmaps/tiny_H.xbm"
#include "bitmaps/tiny_I.xbm"
#include "bitmaps/tiny_J.xbm"
#include "bitmaps/tiny_K.xbm"
#include "bitmaps/tiny_L.xbm"
#include "bitmaps/tiny_M.xbm"
#include "bitmaps/tiny_N.xbm"
#include "bitmaps/tiny_O.xbm"
#include "bitmaps/tiny_P.xbm"
#include "bitmaps/tiny_Q.xbm"
#include "bitmaps/tiny_R.xbm"
#include "bitmaps/tiny_S.xbm"
#include "bitmaps/tiny_T.xbm"
#include "bitmaps/tiny_U.xbm"
#include "bitmaps/tiny_V.xbm"
#include "bitmaps/tiny_W.xbm"
#include "bitmaps/tiny_X.xbm"
#include "bitmaps/tiny_Y.xbm"
#include "bitmaps/tiny_Z.xbm"
#include "bitmaps/tiny__i.xbm"
const tiny_font_t tiny_font = {
7,
-3,
{ GLYPH( tiny, notdef ),
SPACE( "space", 4, 0 ),
GLYPH( tiny, quotedbl ),
GLYPH( tiny, numbersign ),
GLYPH( tiny, ampersand ),
GLYPH( tiny, parenleft ),
GLYPH( tiny, parenright ),
GLYPH( tiny, comma ),
GLYPH( tiny, hyphen ),
GLYPH( tiny, period ),
GLYPH( tiny, slash ),
GLYPH( tiny, zero ),
GLYPH( tiny, one ),
GLYPH( tiny, two ),
GLYPH( tiny, three ),
GLYPH( tiny, colon ),
GLYPH( tiny, less ),
GLYPH( tiny, equal ),
GLYPH( tiny, greater ),
GLYPH( tiny, A ),
GLYPH( tiny, B ),
GLYPH( tiny, C ),
GLYPH( tiny, D ),
GLYPH( tiny, E ),
GLYPH( tiny, F ),
GLYPH( tiny, G ),
GLYPH( tiny, H ),
GLYPH( tiny, I ),
GLYPH( tiny, J ),
GLYPH( tiny, K ),
GLYPH( tiny, L ),
GLYPH( tiny, M ),
GLYPH( tiny, N ),
GLYPH( tiny, O ),
GLYPH( tiny, P ),
GLYPH( tiny, Q ),
GLYPH( tiny, R ),
GLYPH( tiny, S ),
GLYPH( tiny, T ),
GLYPH( tiny, U ),
GLYPH( tiny, V ),
GLYPH( tiny, W ),
GLYPH( tiny, X ),
GLYPH( tiny, Y ),
GLYPH( tiny, Z ),
GLYPH( tiny, bracketleft ),
GLYPH( tiny, bracketright ),
GLYPH( tiny, underscore ),
GLYPH( tiny, i ),
GLYPH( tiny, overscore ),
GLYPH( tiny, arrowleft ),
GLYPH( tiny, arrowright ),
GLYPH( tiny, guillemotleft ),
GLYPH( tiny, guillemotright ),
GLYPH( tiny, braceleft ),
GLYPH( tiny, braceright ),
GLYPH( tiny, large_comma ),
GLYPH( tiny, xsuperior ),
GLYPH( tiny, twosuperior ),
GLYPH( tiny, math_e ),
GLYPH( tiny, math_x ),
GLYPH( tiny, math_y ),
GLYPH( tiny, math_pi ),
GLYPH( tiny, math_summation ),
GLYPH( tiny, math_radical ),
GLYPH( tiny, math_partialdiff ),
GLYPH( tiny, math_integral ),
GLYPH( tiny, math_infinity ),
GLYPH( tiny, math_numbersign ),
GLYPH( tiny, math_less ),
GLYPH( tiny, math_greater ),
GLYPH( tiny, math_lessequal ),
GLYPH( tiny, math_greaterequal ),
GLYPH( tiny, math_equal ),
GLYPH( tiny, math_notequal ),
GLYPH( tiny, math_arrowleft ),
GLYPH( tiny, math_arrowright ),
GLYPH( tiny, math_downarrowleft ),
GLYPH( tiny, math_downarrowright ),
SPACE( "kern-1", -1, -1 ),
SPACE( "kern-2", -2, -2 ),
SPACE( "kern-3", -3, -3 ),
SPACE( "kern-4", -4, -4 ),
SPACE( "kern-5", -5, -5 ),
SPACE( "kern-6", -6, -6 ),
SPACE( "kern-7", -7, -7 ),
{ NULL } }
};
static unsigned char _tiny_font_lookup_glyph( const char* name, int namelen )
{
for ( int i = 0; tiny_font.glyphs[ i ].name; i++ )
if ( ( strlen( tiny_font.glyphs[ i ].name ) == namelen ) && !strncmp( tiny_font.glyphs[ i ].name, name, namelen ) )
return i;
return 0;
}
static unsigned char _tiny_font_lookup_ascii( char c )
{
int namelen = 0;
char* name;
switch ( c ) {
case ' ':
name = "space";
break;
case '!':
name = "exclam";
break;
case '"':
name = "quotedbl";
break;
case '#':
name = "numbersign";
break;
case '$':
name = "dollar";
break;
case '%':
name = "percent";
break;
case '&':
name = "ampersand";
break;
case '(':
name = "parenleft";
break;
case ')':
name = "parenright";
break;
case '*':
name = "asterisk";
break;
case '+':
name = "plus";
break;
case ',':
name = "comma";
break;
case '-':
name = "hyphen";
break;
case '.':
name = "period";
break;
case '/':
name = "slash";
break;
case '0':
name = "zero";
break;
case '1':
name = "one";
break;
case '2':
name = "two";
break;
case '3':
name = "three";
break;
case '4':
name = "four";
break;
case '5':
name = "five";
break;
case '6':
name = "six";
break;
case '7':
name = "seven";
break;
case '8':
name = "eight";
break;
case '9':
name = "nine";
break;
case ':':
name = "colon";
break;
case ';':
name = "semicolon";
break;
case '<':
name = "less";
break;
case '=':
name = "equal";
break;
case '>':
name = "greater";
break;
case '?':
name = "question";
break;
case '@':
name = "at";
break;
case '[':
name = "bracketleft";
break;
case '\\':
name = "backslash";
break;
case ']':
name = "bracketright";
break;
case '^':
name = "asciicircum";
break;
case '_':
name = "underscore";
break;
case '`':
name = "quoteleft";
break;
case '{':
name = "braceleft";
break;
case '|':
name = "bar";
break;
case '}':
name = "braceright";
break;
case '~':
name = "asciitilde";
break;
default:
name = &c;
namelen = 1;
break;
}
if ( 0 == namelen )
namelen = strlen( name );
return _tiny_font_lookup_glyph( name, namelen );
}
static inline int _tiny_font_strlen( const char* text )
{
const char *p, *q;
char c;
int n = 0;
p = text;
while ( ( c = *p++ ) ) {
if ( c != '\\' ) {
n++;
continue;
}
q = p;
while ( *q ) {
if ( ( *q == '\\' ) || ( *q == ' ' ) )
break;
q++;
}
if ( q == p ) {
n++;
p++;
continue;
}
if ( *q == ' ' )
q++;
n++;
p = q;
}
return n;
}
static int _tiny_font_text_to_glyphs( const char* text, unsigned char** glyphp )
{
unsigned char* glyphs;
const char *p, *q;
unsigned char c;
int namelen;
int i, n;
n = _tiny_font_strlen( text );
if ( n <= 0 )
return n;
glyphs = malloc( n );
i = 0;
p = text;
while ( ( c = *p++ ) ) {
if ( i == n ) {
free( glyphs );
return -1;
}
if ( c != '\\' ) {
glyphs[ i++ ] = _tiny_font_lookup_ascii( c );
continue;
}
q = p;
while ( *q ) {
if ( ( *q == '\\' ) || ( *q == ' ' ) )
break;
q++;
}
if ( q == p ) {
glyphs[ i++ ] = _tiny_font_lookup_ascii( *p++ );
continue;
}
namelen = q - p;
if ( *q == ' ' )
q++;
glyphs[ i++ ] = _tiny_font_lookup_glyph( p, namelen );
p = q;
}
*glyphp = glyphs;
return n;
}
void tiny_font_measure_text( const char* text, int* width, int* height, int* ascent, int* descent )
{
const tiny_glyph_t* glyph;
unsigned char* glyphs;
int n, w, a, d;
w = 0;
a = 0;
d = 0;
n = _tiny_font_text_to_glyphs( text, &glyphs );
for ( int i = 0; i < n; i++ ) {
glyph = &tiny_font.glyphs[ glyphs[ i ] ];
w += glyph->width;
if ( glyph->ascent > a )
a = glyph->ascent;
if ( glyph->descent < d )
d = glyph->descent;
}
*width = w - 1;
*height = tiny_font.ascent - tiny_font.descent;
*ascent = a;
*descent = d;
if ( n > 0 )
free( glyphs );
}
void tiny_font_draw_text( GdkDrawable* drawable, GdkColor* color, int x, int y, const char* text )
{
const tiny_glyph_t* glyph;
unsigned char* glyphs;
GdkBitmap* bitmap;
GdkGC* gc;
int n, w, h;
gc = gdk_gc_new( drawable );
gdk_gc_set_rgb_fg_color( gc, color );
n = _tiny_font_text_to_glyphs( text, &glyphs );
for ( int i = 0; i < n; i++ ) {
glyph = &tiny_font.glyphs[ glyphs[ i ] ];
w = glyph->width - glyph->kern;
h = glyph->ascent - glyph->descent;
if ( w <= 0 || h <= 0 ) {
x += glyph->width;
continue;
}
bitmap = gdk_bitmap_create_from_data( NULL, ( char* )glyph->bits, w, h );
gdk_gc_set_ts_origin( gc, x + glyph->kern, y + tiny_font.ascent - glyph->ascent );
gdk_gc_set_stipple( gc, bitmap );
gdk_gc_set_fill( gc, GDK_STIPPLED );
gdk_draw_rectangle( drawable, gc, true, x + glyph->kern, y + tiny_font.ascent - glyph->ascent, w, h );
g_object_unref( bitmap );
x += glyph->width;
}
g_object_unref( gc );
if ( n > 0 )
free( glyphs );
}

View file

@ -1,34 +0,0 @@
#ifndef _X49GP_TINY_FONT_H
#define _X49GP_TINY_FONT_H 1
typedef struct {
const char* name;
int width;
int kern;
int ascent;
int descent;
const unsigned char* bits;
} tiny_glyph_t;
typedef struct {
int ascent;
int descent;
tiny_glyph_t glyphs[];
} tiny_font_t;
#define GLYPH( font, name ) \
{ #name, \
font##_##name##_width - font##_##name##_x_hot, \
-font##_##name##_x_hot, \
font##_##name##_y_hot + 1, \
font##_##name##_y_hot + 1 - font##_##name##_height, \
font##_##name##_bits }
#define SPACE( name, width, kern ) { name, width, kern, 0, 0, NULL }
extern const tiny_font_t tiny_font;
void tiny_font_measure_text( const char* text, int* width, int* height, int* ascent, int* descent );
void tiny_font_draw_text( GdkDrawable* drawable, GdkColor* color, int x, int y, const char* text );
#endif /* !(_X49GP_TINY_FONT_H) */