Add basic text rendering

This commit is contained in:
fruchti 2018-08-04 11:30:00 +02:00
parent 064cdc5ba0
commit 22b6ee1136
16 changed files with 43620 additions and 6 deletions

View file

@ -8,7 +8,10 @@
"ltp1245.h": "c", "ltp1245.h": "c",
"stm32f103x6.h": "c", "stm32f103x6.h": "c",
"stm32f1xx.h": "c", "stm32f1xx.h": "c",
"stm32f100xb.h": "c" "stm32f100xb.h": "c",
"buildid.h": "c",
"font_arpegius_32.h": "c",
"font_arpegius_16.h": "c"
}, },
"C_Cpp.intelliSenseEngineFallback": "Enabled" "C_Cpp.intelliSenseEngineFallback": "Enabled"
} }

View file

@ -1 +1 @@
155 191

18
src/font.h Normal file
View file

@ -0,0 +1,18 @@
#pragma once
#include <stdint.h>
#include <stddef.h>
typedef struct
{
int width;
const uint8_t *bitmap;
} FontGlyph_t;
typedef struct
{
int height;
int charoffset;
int glyphcount;
const FontGlyph_t *glyphs;
} Font_t;

4229
src/font_arpegius_16.c Normal file

File diff suppressed because it is too large Load diff

234
src/font_arpegius_16.h Normal file
View file

@ -0,0 +1,234 @@
#pragma once
#include "font.h"
// This file is autogenerated. Do not edit.
enum
{
ARPEGIUS_16_space,
ARPEGIUS_16_excl,
ARPEGIUS_16_quot,
ARPEGIUS_16_num,
ARPEGIUS_16_dollar,
ARPEGIUS_16_percnt,
ARPEGIUS_16_amp,
ARPEGIUS_16_apos,
ARPEGIUS_16_lpar,
ARPEGIUS_16_rpar,
ARPEGIUS_16_ast,
ARPEGIUS_16_plus,
ARPEGIUS_16_comma,
ARPEGIUS_16_x2D,
ARPEGIUS_16_period,
ARPEGIUS_16_sol,
ARPEGIUS_16_0,
ARPEGIUS_16_1,
ARPEGIUS_16_2,
ARPEGIUS_16_3,
ARPEGIUS_16_4,
ARPEGIUS_16_5,
ARPEGIUS_16_6,
ARPEGIUS_16_7,
ARPEGIUS_16_8,
ARPEGIUS_16_9,
ARPEGIUS_16_colon,
ARPEGIUS_16_semi,
ARPEGIUS_16_lt,
ARPEGIUS_16_equals,
ARPEGIUS_16_gt,
ARPEGIUS_16_quest,
ARPEGIUS_16_commat,
ARPEGIUS_16_A,
ARPEGIUS_16_B,
ARPEGIUS_16_C,
ARPEGIUS_16_D,
ARPEGIUS_16_E,
ARPEGIUS_16_F,
ARPEGIUS_16_G,
ARPEGIUS_16_H,
ARPEGIUS_16_I,
ARPEGIUS_16_J,
ARPEGIUS_16_K,
ARPEGIUS_16_L,
ARPEGIUS_16_M,
ARPEGIUS_16_N,
ARPEGIUS_16_O,
ARPEGIUS_16_P,
ARPEGIUS_16_Q,
ARPEGIUS_16_R,
ARPEGIUS_16_S,
ARPEGIUS_16_T,
ARPEGIUS_16_U,
ARPEGIUS_16_V,
ARPEGIUS_16_W,
ARPEGIUS_16_X,
ARPEGIUS_16_Y,
ARPEGIUS_16_Z,
ARPEGIUS_16_lsqb,
ARPEGIUS_16_x5C,
ARPEGIUS_16_rsqb,
ARPEGIUS_16_Hat,
ARPEGIUS_16_lowbar,
ARPEGIUS_16_grave,
ARPEGIUS_16_a,
ARPEGIUS_16_b,
ARPEGIUS_16_c,
ARPEGIUS_16_d,
ARPEGIUS_16_e,
ARPEGIUS_16_f,
ARPEGIUS_16_g,
ARPEGIUS_16_h,
ARPEGIUS_16_i,
ARPEGIUS_16_j,
ARPEGIUS_16_k,
ARPEGIUS_16_l,
ARPEGIUS_16_m,
ARPEGIUS_16_n,
ARPEGIUS_16_o,
ARPEGIUS_16_p,
ARPEGIUS_16_q,
ARPEGIUS_16_r,
ARPEGIUS_16_s,
ARPEGIUS_16_t,
ARPEGIUS_16_u,
ARPEGIUS_16_v,
ARPEGIUS_16_w,
ARPEGIUS_16_x,
ARPEGIUS_16_y,
ARPEGIUS_16_z,
ARPEGIUS_16_lcub,
ARPEGIUS_16_vert,
ARPEGIUS_16_rcub,
ARPEGIUS_16_x7E,
ARPEGIUS_16_RSVD_0,
ARPEGIUS_16_RSVD_1,
ARPEGIUS_16_RSVD_2,
ARPEGIUS_16_RSVD_3,
ARPEGIUS_16_RSVD_4,
ARPEGIUS_16_RSVD_5,
ARPEGIUS_16_RSVD_6,
ARPEGIUS_16_RSVD_7,
ARPEGIUS_16_RSVD_8,
ARPEGIUS_16_RSVD_9,
ARPEGIUS_16_RSVD_10,
ARPEGIUS_16_RSVD_11,
ARPEGIUS_16_RSVD_12,
ARPEGIUS_16_RSVD_13,
ARPEGIUS_16_RSVD_14,
ARPEGIUS_16_RSVD_15,
ARPEGIUS_16_RSVD_16,
ARPEGIUS_16_RSVD_17,
ARPEGIUS_16_RSVD_18,
ARPEGIUS_16_RSVD_19,
ARPEGIUS_16_RSVD_20,
ARPEGIUS_16_RSVD_21,
ARPEGIUS_16_RSVD_22,
ARPEGIUS_16_RSVD_23,
ARPEGIUS_16_RSVD_24,
ARPEGIUS_16_RSVD_25,
ARPEGIUS_16_RSVD_26,
ARPEGIUS_16_RSVD_27,
ARPEGIUS_16_RSVD_28,
ARPEGIUS_16_RSVD_29,
ARPEGIUS_16_RSVD_30,
ARPEGIUS_16_RSVD_31,
ARPEGIUS_16_RSVD_32,
ARPEGIUS_16_RSVD_33,
ARPEGIUS_16_iexcl,
ARPEGIUS_16_cent,
ARPEGIUS_16_pound,
ARPEGIUS_16_curren,
ARPEGIUS_16_yen,
ARPEGIUS_16_brvbar,
ARPEGIUS_16_sect,
ARPEGIUS_16_die,
ARPEGIUS_16_copy,
ARPEGIUS_16_ordf,
ARPEGIUS_16_laquo,
ARPEGIUS_16_not,
ARPEGIUS_16_shy,
ARPEGIUS_16_reg,
ARPEGIUS_16_macr,
ARPEGIUS_16_deg,
ARPEGIUS_16_pm,
ARPEGIUS_16_sup2,
ARPEGIUS_16_sup3,
ARPEGIUS_16_acute,
ARPEGIUS_16_micro,
ARPEGIUS_16_para,
ARPEGIUS_16_middot,
ARPEGIUS_16_cedil,
ARPEGIUS_16_sup1,
ARPEGIUS_16_ordm,
ARPEGIUS_16_raquo,
ARPEGIUS_16_frac14,
ARPEGIUS_16_half,
ARPEGIUS_16_frac34,
ARPEGIUS_16_iquest,
ARPEGIUS_16_Agrave,
ARPEGIUS_16_Aacute,
ARPEGIUS_16_Acirc,
ARPEGIUS_16_Atilde,
ARPEGIUS_16_Auml,
ARPEGIUS_16_angst,
ARPEGIUS_16_AElig,
ARPEGIUS_16_Ccedil,
ARPEGIUS_16_Egrave,
ARPEGIUS_16_Eacute,
ARPEGIUS_16_Ecirc,
ARPEGIUS_16_Euml,
ARPEGIUS_16_Igrave,
ARPEGIUS_16_Iacute,
ARPEGIUS_16_Icirc,
ARPEGIUS_16_Iuml,
ARPEGIUS_16_ETH,
ARPEGIUS_16_Ntilde,
ARPEGIUS_16_Ograve,
ARPEGIUS_16_Oacute,
ARPEGIUS_16_Ocirc,
ARPEGIUS_16_Otilde,
ARPEGIUS_16_Ouml,
ARPEGIUS_16_times,
ARPEGIUS_16_Oslash,
ARPEGIUS_16_Ugrave,
ARPEGIUS_16_Uacute,
ARPEGIUS_16_Ucirc,
ARPEGIUS_16_Uuml,
ARPEGIUS_16_Yacute,
ARPEGIUS_16_THORN,
ARPEGIUS_16_szlig,
ARPEGIUS_16_agrave,
ARPEGIUS_16_aacute,
ARPEGIUS_16_acirc,
ARPEGIUS_16_atilde,
ARPEGIUS_16_auml,
ARPEGIUS_16_aring,
ARPEGIUS_16_aelig,
ARPEGIUS_16_ccedil,
ARPEGIUS_16_egrave,
ARPEGIUS_16_eacute,
ARPEGIUS_16_ecirc,
ARPEGIUS_16_euml,
ARPEGIUS_16_igrave,
ARPEGIUS_16_iacute,
ARPEGIUS_16_icirc,
ARPEGIUS_16_iuml,
ARPEGIUS_16_eth,
ARPEGIUS_16_ntilde,
ARPEGIUS_16_ograve,
ARPEGIUS_16_oacute,
ARPEGIUS_16_ocirc,
ARPEGIUS_16_otilde,
ARPEGIUS_16_ouml,
ARPEGIUS_16_div,
ARPEGIUS_16_oslash,
ARPEGIUS_16_ugrave,
ARPEGIUS_16_uacute,
ARPEGIUS_16_ucirc,
ARPEGIUS_16_uuml,
ARPEGIUS_16_yacute,
ARPEGIUS_16_thorn,
};
extern const Font_t Arpegius_16;

13067
src/font_arpegius_32.c Normal file

File diff suppressed because it is too large Load diff

234
src/font_arpegius_32.h Normal file
View file

@ -0,0 +1,234 @@
#pragma once
#include "font.h"
// This file is autogenerated. Do not edit.
enum
{
ARPEGIUS_32_space,
ARPEGIUS_32_excl,
ARPEGIUS_32_quot,
ARPEGIUS_32_num,
ARPEGIUS_32_dollar,
ARPEGIUS_32_percnt,
ARPEGIUS_32_amp,
ARPEGIUS_32_apos,
ARPEGIUS_32_lpar,
ARPEGIUS_32_rpar,
ARPEGIUS_32_ast,
ARPEGIUS_32_plus,
ARPEGIUS_32_comma,
ARPEGIUS_32_x2D,
ARPEGIUS_32_period,
ARPEGIUS_32_sol,
ARPEGIUS_32_0,
ARPEGIUS_32_1,
ARPEGIUS_32_2,
ARPEGIUS_32_3,
ARPEGIUS_32_4,
ARPEGIUS_32_5,
ARPEGIUS_32_6,
ARPEGIUS_32_7,
ARPEGIUS_32_8,
ARPEGIUS_32_9,
ARPEGIUS_32_colon,
ARPEGIUS_32_semi,
ARPEGIUS_32_lt,
ARPEGIUS_32_equals,
ARPEGIUS_32_gt,
ARPEGIUS_32_quest,
ARPEGIUS_32_commat,
ARPEGIUS_32_A,
ARPEGIUS_32_B,
ARPEGIUS_32_C,
ARPEGIUS_32_D,
ARPEGIUS_32_E,
ARPEGIUS_32_F,
ARPEGIUS_32_G,
ARPEGIUS_32_H,
ARPEGIUS_32_I,
ARPEGIUS_32_J,
ARPEGIUS_32_K,
ARPEGIUS_32_L,
ARPEGIUS_32_M,
ARPEGIUS_32_N,
ARPEGIUS_32_O,
ARPEGIUS_32_P,
ARPEGIUS_32_Q,
ARPEGIUS_32_R,
ARPEGIUS_32_S,
ARPEGIUS_32_T,
ARPEGIUS_32_U,
ARPEGIUS_32_V,
ARPEGIUS_32_W,
ARPEGIUS_32_X,
ARPEGIUS_32_Y,
ARPEGIUS_32_Z,
ARPEGIUS_32_lsqb,
ARPEGIUS_32_x5C,
ARPEGIUS_32_rsqb,
ARPEGIUS_32_Hat,
ARPEGIUS_32_lowbar,
ARPEGIUS_32_grave,
ARPEGIUS_32_a,
ARPEGIUS_32_b,
ARPEGIUS_32_c,
ARPEGIUS_32_d,
ARPEGIUS_32_e,
ARPEGIUS_32_f,
ARPEGIUS_32_g,
ARPEGIUS_32_h,
ARPEGIUS_32_i,
ARPEGIUS_32_j,
ARPEGIUS_32_k,
ARPEGIUS_32_l,
ARPEGIUS_32_m,
ARPEGIUS_32_n,
ARPEGIUS_32_o,
ARPEGIUS_32_p,
ARPEGIUS_32_q,
ARPEGIUS_32_r,
ARPEGIUS_32_s,
ARPEGIUS_32_t,
ARPEGIUS_32_u,
ARPEGIUS_32_v,
ARPEGIUS_32_w,
ARPEGIUS_32_x,
ARPEGIUS_32_y,
ARPEGIUS_32_z,
ARPEGIUS_32_lcub,
ARPEGIUS_32_vert,
ARPEGIUS_32_rcub,
ARPEGIUS_32_x7E,
ARPEGIUS_32_RSVD_0,
ARPEGIUS_32_RSVD_1,
ARPEGIUS_32_RSVD_2,
ARPEGIUS_32_RSVD_3,
ARPEGIUS_32_RSVD_4,
ARPEGIUS_32_RSVD_5,
ARPEGIUS_32_RSVD_6,
ARPEGIUS_32_RSVD_7,
ARPEGIUS_32_RSVD_8,
ARPEGIUS_32_RSVD_9,
ARPEGIUS_32_RSVD_10,
ARPEGIUS_32_RSVD_11,
ARPEGIUS_32_RSVD_12,
ARPEGIUS_32_RSVD_13,
ARPEGIUS_32_RSVD_14,
ARPEGIUS_32_RSVD_15,
ARPEGIUS_32_RSVD_16,
ARPEGIUS_32_RSVD_17,
ARPEGIUS_32_RSVD_18,
ARPEGIUS_32_RSVD_19,
ARPEGIUS_32_RSVD_20,
ARPEGIUS_32_RSVD_21,
ARPEGIUS_32_RSVD_22,
ARPEGIUS_32_RSVD_23,
ARPEGIUS_32_RSVD_24,
ARPEGIUS_32_RSVD_25,
ARPEGIUS_32_RSVD_26,
ARPEGIUS_32_RSVD_27,
ARPEGIUS_32_RSVD_28,
ARPEGIUS_32_RSVD_29,
ARPEGIUS_32_RSVD_30,
ARPEGIUS_32_RSVD_31,
ARPEGIUS_32_RSVD_32,
ARPEGIUS_32_RSVD_33,
ARPEGIUS_32_iexcl,
ARPEGIUS_32_cent,
ARPEGIUS_32_pound,
ARPEGIUS_32_curren,
ARPEGIUS_32_yen,
ARPEGIUS_32_brvbar,
ARPEGIUS_32_sect,
ARPEGIUS_32_die,
ARPEGIUS_32_copy,
ARPEGIUS_32_ordf,
ARPEGIUS_32_laquo,
ARPEGIUS_32_not,
ARPEGIUS_32_shy,
ARPEGIUS_32_reg,
ARPEGIUS_32_macr,
ARPEGIUS_32_deg,
ARPEGIUS_32_pm,
ARPEGIUS_32_sup2,
ARPEGIUS_32_sup3,
ARPEGIUS_32_acute,
ARPEGIUS_32_micro,
ARPEGIUS_32_para,
ARPEGIUS_32_middot,
ARPEGIUS_32_cedil,
ARPEGIUS_32_sup1,
ARPEGIUS_32_ordm,
ARPEGIUS_32_raquo,
ARPEGIUS_32_frac14,
ARPEGIUS_32_half,
ARPEGIUS_32_frac34,
ARPEGIUS_32_iquest,
ARPEGIUS_32_Agrave,
ARPEGIUS_32_Aacute,
ARPEGIUS_32_Acirc,
ARPEGIUS_32_Atilde,
ARPEGIUS_32_Auml,
ARPEGIUS_32_angst,
ARPEGIUS_32_AElig,
ARPEGIUS_32_Ccedil,
ARPEGIUS_32_Egrave,
ARPEGIUS_32_Eacute,
ARPEGIUS_32_Ecirc,
ARPEGIUS_32_Euml,
ARPEGIUS_32_Igrave,
ARPEGIUS_32_Iacute,
ARPEGIUS_32_Icirc,
ARPEGIUS_32_Iuml,
ARPEGIUS_32_ETH,
ARPEGIUS_32_Ntilde,
ARPEGIUS_32_Ograve,
ARPEGIUS_32_Oacute,
ARPEGIUS_32_Ocirc,
ARPEGIUS_32_Otilde,
ARPEGIUS_32_Ouml,
ARPEGIUS_32_times,
ARPEGIUS_32_Oslash,
ARPEGIUS_32_Ugrave,
ARPEGIUS_32_Uacute,
ARPEGIUS_32_Ucirc,
ARPEGIUS_32_Uuml,
ARPEGIUS_32_Yacute,
ARPEGIUS_32_THORN,
ARPEGIUS_32_szlig,
ARPEGIUS_32_agrave,
ARPEGIUS_32_aacute,
ARPEGIUS_32_acirc,
ARPEGIUS_32_atilde,
ARPEGIUS_32_auml,
ARPEGIUS_32_aring,
ARPEGIUS_32_aelig,
ARPEGIUS_32_ccedil,
ARPEGIUS_32_egrave,
ARPEGIUS_32_eacute,
ARPEGIUS_32_ecirc,
ARPEGIUS_32_euml,
ARPEGIUS_32_igrave,
ARPEGIUS_32_iacute,
ARPEGIUS_32_icirc,
ARPEGIUS_32_iuml,
ARPEGIUS_32_eth,
ARPEGIUS_32_ntilde,
ARPEGIUS_32_ograve,
ARPEGIUS_32_oacute,
ARPEGIUS_32_ocirc,
ARPEGIUS_32_otilde,
ARPEGIUS_32_ouml,
ARPEGIUS_32_div,
ARPEGIUS_32_oslash,
ARPEGIUS_32_ugrave,
ARPEGIUS_32_uacute,
ARPEGIUS_32_ucirc,
ARPEGIUS_32_uuml,
ARPEGIUS_32_yacute,
ARPEGIUS_32_thorn,
};
extern const Font_t Arpegius_32;

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,234 @@
#pragma once
#include "font.h"
// This file is autogenerated. Do not edit.
enum
{
HANNOVER_MESSE_SERIF_26_space,
HANNOVER_MESSE_SERIF_26_excl,
HANNOVER_MESSE_SERIF_26_quot,
HANNOVER_MESSE_SERIF_26_num,
HANNOVER_MESSE_SERIF_26_dollar,
HANNOVER_MESSE_SERIF_26_percnt,
HANNOVER_MESSE_SERIF_26_amp,
HANNOVER_MESSE_SERIF_26_apos,
HANNOVER_MESSE_SERIF_26_lpar,
HANNOVER_MESSE_SERIF_26_rpar,
HANNOVER_MESSE_SERIF_26_ast,
HANNOVER_MESSE_SERIF_26_plus,
HANNOVER_MESSE_SERIF_26_comma,
HANNOVER_MESSE_SERIF_26_x2D,
HANNOVER_MESSE_SERIF_26_period,
HANNOVER_MESSE_SERIF_26_sol,
HANNOVER_MESSE_SERIF_26_0,
HANNOVER_MESSE_SERIF_26_1,
HANNOVER_MESSE_SERIF_26_2,
HANNOVER_MESSE_SERIF_26_3,
HANNOVER_MESSE_SERIF_26_4,
HANNOVER_MESSE_SERIF_26_5,
HANNOVER_MESSE_SERIF_26_6,
HANNOVER_MESSE_SERIF_26_7,
HANNOVER_MESSE_SERIF_26_8,
HANNOVER_MESSE_SERIF_26_9,
HANNOVER_MESSE_SERIF_26_colon,
HANNOVER_MESSE_SERIF_26_semi,
HANNOVER_MESSE_SERIF_26_lt,
HANNOVER_MESSE_SERIF_26_equals,
HANNOVER_MESSE_SERIF_26_gt,
HANNOVER_MESSE_SERIF_26_quest,
HANNOVER_MESSE_SERIF_26_commat,
HANNOVER_MESSE_SERIF_26_A,
HANNOVER_MESSE_SERIF_26_B,
HANNOVER_MESSE_SERIF_26_C,
HANNOVER_MESSE_SERIF_26_D,
HANNOVER_MESSE_SERIF_26_E,
HANNOVER_MESSE_SERIF_26_F,
HANNOVER_MESSE_SERIF_26_G,
HANNOVER_MESSE_SERIF_26_H,
HANNOVER_MESSE_SERIF_26_I,
HANNOVER_MESSE_SERIF_26_J,
HANNOVER_MESSE_SERIF_26_K,
HANNOVER_MESSE_SERIF_26_L,
HANNOVER_MESSE_SERIF_26_M,
HANNOVER_MESSE_SERIF_26_N,
HANNOVER_MESSE_SERIF_26_O,
HANNOVER_MESSE_SERIF_26_P,
HANNOVER_MESSE_SERIF_26_Q,
HANNOVER_MESSE_SERIF_26_R,
HANNOVER_MESSE_SERIF_26_S,
HANNOVER_MESSE_SERIF_26_T,
HANNOVER_MESSE_SERIF_26_U,
HANNOVER_MESSE_SERIF_26_V,
HANNOVER_MESSE_SERIF_26_W,
HANNOVER_MESSE_SERIF_26_X,
HANNOVER_MESSE_SERIF_26_Y,
HANNOVER_MESSE_SERIF_26_Z,
HANNOVER_MESSE_SERIF_26_lsqb,
HANNOVER_MESSE_SERIF_26_x5C,
HANNOVER_MESSE_SERIF_26_rsqb,
HANNOVER_MESSE_SERIF_26_Hat,
HANNOVER_MESSE_SERIF_26_lowbar,
HANNOVER_MESSE_SERIF_26_grave,
HANNOVER_MESSE_SERIF_26_a,
HANNOVER_MESSE_SERIF_26_b,
HANNOVER_MESSE_SERIF_26_c,
HANNOVER_MESSE_SERIF_26_d,
HANNOVER_MESSE_SERIF_26_e,
HANNOVER_MESSE_SERIF_26_f,
HANNOVER_MESSE_SERIF_26_g,
HANNOVER_MESSE_SERIF_26_h,
HANNOVER_MESSE_SERIF_26_i,
HANNOVER_MESSE_SERIF_26_j,
HANNOVER_MESSE_SERIF_26_k,
HANNOVER_MESSE_SERIF_26_l,
HANNOVER_MESSE_SERIF_26_m,
HANNOVER_MESSE_SERIF_26_n,
HANNOVER_MESSE_SERIF_26_o,
HANNOVER_MESSE_SERIF_26_p,
HANNOVER_MESSE_SERIF_26_q,
HANNOVER_MESSE_SERIF_26_r,
HANNOVER_MESSE_SERIF_26_s,
HANNOVER_MESSE_SERIF_26_t,
HANNOVER_MESSE_SERIF_26_u,
HANNOVER_MESSE_SERIF_26_v,
HANNOVER_MESSE_SERIF_26_w,
HANNOVER_MESSE_SERIF_26_x,
HANNOVER_MESSE_SERIF_26_y,
HANNOVER_MESSE_SERIF_26_z,
HANNOVER_MESSE_SERIF_26_lcub,
HANNOVER_MESSE_SERIF_26_vert,
HANNOVER_MESSE_SERIF_26_rcub,
HANNOVER_MESSE_SERIF_26_x7E,
HANNOVER_MESSE_SERIF_26_RSVD_0,
HANNOVER_MESSE_SERIF_26_RSVD_1,
HANNOVER_MESSE_SERIF_26_RSVD_2,
HANNOVER_MESSE_SERIF_26_RSVD_3,
HANNOVER_MESSE_SERIF_26_RSVD_4,
HANNOVER_MESSE_SERIF_26_RSVD_5,
HANNOVER_MESSE_SERIF_26_RSVD_6,
HANNOVER_MESSE_SERIF_26_RSVD_7,
HANNOVER_MESSE_SERIF_26_RSVD_8,
HANNOVER_MESSE_SERIF_26_RSVD_9,
HANNOVER_MESSE_SERIF_26_RSVD_10,
HANNOVER_MESSE_SERIF_26_RSVD_11,
HANNOVER_MESSE_SERIF_26_RSVD_12,
HANNOVER_MESSE_SERIF_26_RSVD_13,
HANNOVER_MESSE_SERIF_26_RSVD_14,
HANNOVER_MESSE_SERIF_26_RSVD_15,
HANNOVER_MESSE_SERIF_26_RSVD_16,
HANNOVER_MESSE_SERIF_26_RSVD_17,
HANNOVER_MESSE_SERIF_26_RSVD_18,
HANNOVER_MESSE_SERIF_26_RSVD_19,
HANNOVER_MESSE_SERIF_26_RSVD_20,
HANNOVER_MESSE_SERIF_26_RSVD_21,
HANNOVER_MESSE_SERIF_26_RSVD_22,
HANNOVER_MESSE_SERIF_26_RSVD_23,
HANNOVER_MESSE_SERIF_26_RSVD_24,
HANNOVER_MESSE_SERIF_26_RSVD_25,
HANNOVER_MESSE_SERIF_26_RSVD_26,
HANNOVER_MESSE_SERIF_26_RSVD_27,
HANNOVER_MESSE_SERIF_26_RSVD_28,
HANNOVER_MESSE_SERIF_26_RSVD_29,
HANNOVER_MESSE_SERIF_26_RSVD_30,
HANNOVER_MESSE_SERIF_26_RSVD_31,
HANNOVER_MESSE_SERIF_26_RSVD_32,
HANNOVER_MESSE_SERIF_26_RSVD_33,
HANNOVER_MESSE_SERIF_26_iexcl,
HANNOVER_MESSE_SERIF_26_cent,
HANNOVER_MESSE_SERIF_26_pound,
HANNOVER_MESSE_SERIF_26_curren,
HANNOVER_MESSE_SERIF_26_yen,
HANNOVER_MESSE_SERIF_26_brvbar,
HANNOVER_MESSE_SERIF_26_sect,
HANNOVER_MESSE_SERIF_26_die,
HANNOVER_MESSE_SERIF_26_copy,
HANNOVER_MESSE_SERIF_26_ordf,
HANNOVER_MESSE_SERIF_26_laquo,
HANNOVER_MESSE_SERIF_26_not,
HANNOVER_MESSE_SERIF_26_shy,
HANNOVER_MESSE_SERIF_26_reg,
HANNOVER_MESSE_SERIF_26_macr,
HANNOVER_MESSE_SERIF_26_deg,
HANNOVER_MESSE_SERIF_26_pm,
HANNOVER_MESSE_SERIF_26_sup2,
HANNOVER_MESSE_SERIF_26_sup3,
HANNOVER_MESSE_SERIF_26_acute,
HANNOVER_MESSE_SERIF_26_micro,
HANNOVER_MESSE_SERIF_26_para,
HANNOVER_MESSE_SERIF_26_middot,
HANNOVER_MESSE_SERIF_26_cedil,
HANNOVER_MESSE_SERIF_26_sup1,
HANNOVER_MESSE_SERIF_26_ordm,
HANNOVER_MESSE_SERIF_26_raquo,
HANNOVER_MESSE_SERIF_26_frac14,
HANNOVER_MESSE_SERIF_26_half,
HANNOVER_MESSE_SERIF_26_frac34,
HANNOVER_MESSE_SERIF_26_iquest,
HANNOVER_MESSE_SERIF_26_Agrave,
HANNOVER_MESSE_SERIF_26_Aacute,
HANNOVER_MESSE_SERIF_26_Acirc,
HANNOVER_MESSE_SERIF_26_Atilde,
HANNOVER_MESSE_SERIF_26_Auml,
HANNOVER_MESSE_SERIF_26_angst,
HANNOVER_MESSE_SERIF_26_AElig,
HANNOVER_MESSE_SERIF_26_Ccedil,
HANNOVER_MESSE_SERIF_26_Egrave,
HANNOVER_MESSE_SERIF_26_Eacute,
HANNOVER_MESSE_SERIF_26_Ecirc,
HANNOVER_MESSE_SERIF_26_Euml,
HANNOVER_MESSE_SERIF_26_Igrave,
HANNOVER_MESSE_SERIF_26_Iacute,
HANNOVER_MESSE_SERIF_26_Icirc,
HANNOVER_MESSE_SERIF_26_Iuml,
HANNOVER_MESSE_SERIF_26_ETH,
HANNOVER_MESSE_SERIF_26_Ntilde,
HANNOVER_MESSE_SERIF_26_Ograve,
HANNOVER_MESSE_SERIF_26_Oacute,
HANNOVER_MESSE_SERIF_26_Ocirc,
HANNOVER_MESSE_SERIF_26_Otilde,
HANNOVER_MESSE_SERIF_26_Ouml,
HANNOVER_MESSE_SERIF_26_times,
HANNOVER_MESSE_SERIF_26_Oslash,
HANNOVER_MESSE_SERIF_26_Ugrave,
HANNOVER_MESSE_SERIF_26_Uacute,
HANNOVER_MESSE_SERIF_26_Ucirc,
HANNOVER_MESSE_SERIF_26_Uuml,
HANNOVER_MESSE_SERIF_26_Yacute,
HANNOVER_MESSE_SERIF_26_THORN,
HANNOVER_MESSE_SERIF_26_szlig,
HANNOVER_MESSE_SERIF_26_agrave,
HANNOVER_MESSE_SERIF_26_aacute,
HANNOVER_MESSE_SERIF_26_acirc,
HANNOVER_MESSE_SERIF_26_atilde,
HANNOVER_MESSE_SERIF_26_auml,
HANNOVER_MESSE_SERIF_26_aring,
HANNOVER_MESSE_SERIF_26_aelig,
HANNOVER_MESSE_SERIF_26_ccedil,
HANNOVER_MESSE_SERIF_26_egrave,
HANNOVER_MESSE_SERIF_26_eacute,
HANNOVER_MESSE_SERIF_26_ecirc,
HANNOVER_MESSE_SERIF_26_euml,
HANNOVER_MESSE_SERIF_26_igrave,
HANNOVER_MESSE_SERIF_26_iacute,
HANNOVER_MESSE_SERIF_26_icirc,
HANNOVER_MESSE_SERIF_26_iuml,
HANNOVER_MESSE_SERIF_26_eth,
HANNOVER_MESSE_SERIF_26_ntilde,
HANNOVER_MESSE_SERIF_26_ograve,
HANNOVER_MESSE_SERIF_26_oacute,
HANNOVER_MESSE_SERIF_26_ocirc,
HANNOVER_MESSE_SERIF_26_otilde,
HANNOVER_MESSE_SERIF_26_ouml,
HANNOVER_MESSE_SERIF_26_div,
HANNOVER_MESSE_SERIF_26_oslash,
HANNOVER_MESSE_SERIF_26_ugrave,
HANNOVER_MESSE_SERIF_26_uacute,
HANNOVER_MESSE_SERIF_26_ucirc,
HANNOVER_MESSE_SERIF_26_uuml,
HANNOVER_MESSE_SERIF_26_yacute,
HANNOVER_MESSE_SERIF_26_thorn,
};
extern const Font_t Hannover_Messe_Serif_26;

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,234 @@
#pragma once
#include "font.h"
// This file is autogenerated. Do not edit.
enum
{
MESSE_DUESSELDORF_39_space,
MESSE_DUESSELDORF_39_excl,
MESSE_DUESSELDORF_39_quot,
MESSE_DUESSELDORF_39_num,
MESSE_DUESSELDORF_39_dollar,
MESSE_DUESSELDORF_39_percnt,
MESSE_DUESSELDORF_39_amp,
MESSE_DUESSELDORF_39_apos,
MESSE_DUESSELDORF_39_lpar,
MESSE_DUESSELDORF_39_rpar,
MESSE_DUESSELDORF_39_ast,
MESSE_DUESSELDORF_39_plus,
MESSE_DUESSELDORF_39_comma,
MESSE_DUESSELDORF_39_x2D,
MESSE_DUESSELDORF_39_period,
MESSE_DUESSELDORF_39_sol,
MESSE_DUESSELDORF_39_0,
MESSE_DUESSELDORF_39_1,
MESSE_DUESSELDORF_39_2,
MESSE_DUESSELDORF_39_3,
MESSE_DUESSELDORF_39_4,
MESSE_DUESSELDORF_39_5,
MESSE_DUESSELDORF_39_6,
MESSE_DUESSELDORF_39_7,
MESSE_DUESSELDORF_39_8,
MESSE_DUESSELDORF_39_9,
MESSE_DUESSELDORF_39_colon,
MESSE_DUESSELDORF_39_semi,
MESSE_DUESSELDORF_39_lt,
MESSE_DUESSELDORF_39_equals,
MESSE_DUESSELDORF_39_gt,
MESSE_DUESSELDORF_39_quest,
MESSE_DUESSELDORF_39_commat,
MESSE_DUESSELDORF_39_A,
MESSE_DUESSELDORF_39_B,
MESSE_DUESSELDORF_39_C,
MESSE_DUESSELDORF_39_D,
MESSE_DUESSELDORF_39_E,
MESSE_DUESSELDORF_39_F,
MESSE_DUESSELDORF_39_G,
MESSE_DUESSELDORF_39_H,
MESSE_DUESSELDORF_39_I,
MESSE_DUESSELDORF_39_J,
MESSE_DUESSELDORF_39_K,
MESSE_DUESSELDORF_39_L,
MESSE_DUESSELDORF_39_M,
MESSE_DUESSELDORF_39_N,
MESSE_DUESSELDORF_39_O,
MESSE_DUESSELDORF_39_P,
MESSE_DUESSELDORF_39_Q,
MESSE_DUESSELDORF_39_R,
MESSE_DUESSELDORF_39_S,
MESSE_DUESSELDORF_39_T,
MESSE_DUESSELDORF_39_U,
MESSE_DUESSELDORF_39_V,
MESSE_DUESSELDORF_39_W,
MESSE_DUESSELDORF_39_X,
MESSE_DUESSELDORF_39_Y,
MESSE_DUESSELDORF_39_Z,
MESSE_DUESSELDORF_39_lsqb,
MESSE_DUESSELDORF_39_x5C,
MESSE_DUESSELDORF_39_rsqb,
MESSE_DUESSELDORF_39_Hat,
MESSE_DUESSELDORF_39_lowbar,
MESSE_DUESSELDORF_39_grave,
MESSE_DUESSELDORF_39_a,
MESSE_DUESSELDORF_39_b,
MESSE_DUESSELDORF_39_c,
MESSE_DUESSELDORF_39_d,
MESSE_DUESSELDORF_39_e,
MESSE_DUESSELDORF_39_f,
MESSE_DUESSELDORF_39_g,
MESSE_DUESSELDORF_39_h,
MESSE_DUESSELDORF_39_i,
MESSE_DUESSELDORF_39_j,
MESSE_DUESSELDORF_39_k,
MESSE_DUESSELDORF_39_l,
MESSE_DUESSELDORF_39_m,
MESSE_DUESSELDORF_39_n,
MESSE_DUESSELDORF_39_o,
MESSE_DUESSELDORF_39_p,
MESSE_DUESSELDORF_39_q,
MESSE_DUESSELDORF_39_r,
MESSE_DUESSELDORF_39_s,
MESSE_DUESSELDORF_39_t,
MESSE_DUESSELDORF_39_u,
MESSE_DUESSELDORF_39_v,
MESSE_DUESSELDORF_39_w,
MESSE_DUESSELDORF_39_x,
MESSE_DUESSELDORF_39_y,
MESSE_DUESSELDORF_39_z,
MESSE_DUESSELDORF_39_lcub,
MESSE_DUESSELDORF_39_vert,
MESSE_DUESSELDORF_39_rcub,
MESSE_DUESSELDORF_39_x7E,
MESSE_DUESSELDORF_39_RSVD_0,
MESSE_DUESSELDORF_39_RSVD_1,
MESSE_DUESSELDORF_39_RSVD_2,
MESSE_DUESSELDORF_39_RSVD_3,
MESSE_DUESSELDORF_39_RSVD_4,
MESSE_DUESSELDORF_39_RSVD_5,
MESSE_DUESSELDORF_39_RSVD_6,
MESSE_DUESSELDORF_39_RSVD_7,
MESSE_DUESSELDORF_39_RSVD_8,
MESSE_DUESSELDORF_39_RSVD_9,
MESSE_DUESSELDORF_39_RSVD_10,
MESSE_DUESSELDORF_39_RSVD_11,
MESSE_DUESSELDORF_39_RSVD_12,
MESSE_DUESSELDORF_39_RSVD_13,
MESSE_DUESSELDORF_39_RSVD_14,
MESSE_DUESSELDORF_39_RSVD_15,
MESSE_DUESSELDORF_39_RSVD_16,
MESSE_DUESSELDORF_39_RSVD_17,
MESSE_DUESSELDORF_39_RSVD_18,
MESSE_DUESSELDORF_39_RSVD_19,
MESSE_DUESSELDORF_39_RSVD_20,
MESSE_DUESSELDORF_39_RSVD_21,
MESSE_DUESSELDORF_39_RSVD_22,
MESSE_DUESSELDORF_39_RSVD_23,
MESSE_DUESSELDORF_39_RSVD_24,
MESSE_DUESSELDORF_39_RSVD_25,
MESSE_DUESSELDORF_39_RSVD_26,
MESSE_DUESSELDORF_39_RSVD_27,
MESSE_DUESSELDORF_39_RSVD_28,
MESSE_DUESSELDORF_39_RSVD_29,
MESSE_DUESSELDORF_39_RSVD_30,
MESSE_DUESSELDORF_39_RSVD_31,
MESSE_DUESSELDORF_39_RSVD_32,
MESSE_DUESSELDORF_39_RSVD_33,
MESSE_DUESSELDORF_39_iexcl,
MESSE_DUESSELDORF_39_cent,
MESSE_DUESSELDORF_39_pound,
MESSE_DUESSELDORF_39_curren,
MESSE_DUESSELDORF_39_yen,
MESSE_DUESSELDORF_39_brvbar,
MESSE_DUESSELDORF_39_sect,
MESSE_DUESSELDORF_39_die,
MESSE_DUESSELDORF_39_copy,
MESSE_DUESSELDORF_39_ordf,
MESSE_DUESSELDORF_39_laquo,
MESSE_DUESSELDORF_39_not,
MESSE_DUESSELDORF_39_shy,
MESSE_DUESSELDORF_39_reg,
MESSE_DUESSELDORF_39_macr,
MESSE_DUESSELDORF_39_deg,
MESSE_DUESSELDORF_39_pm,
MESSE_DUESSELDORF_39_sup2,
MESSE_DUESSELDORF_39_sup3,
MESSE_DUESSELDORF_39_acute,
MESSE_DUESSELDORF_39_micro,
MESSE_DUESSELDORF_39_para,
MESSE_DUESSELDORF_39_middot,
MESSE_DUESSELDORF_39_cedil,
MESSE_DUESSELDORF_39_sup1,
MESSE_DUESSELDORF_39_ordm,
MESSE_DUESSELDORF_39_raquo,
MESSE_DUESSELDORF_39_frac14,
MESSE_DUESSELDORF_39_half,
MESSE_DUESSELDORF_39_frac34,
MESSE_DUESSELDORF_39_iquest,
MESSE_DUESSELDORF_39_Agrave,
MESSE_DUESSELDORF_39_Aacute,
MESSE_DUESSELDORF_39_Acirc,
MESSE_DUESSELDORF_39_Atilde,
MESSE_DUESSELDORF_39_Auml,
MESSE_DUESSELDORF_39_angst,
MESSE_DUESSELDORF_39_AElig,
MESSE_DUESSELDORF_39_Ccedil,
MESSE_DUESSELDORF_39_Egrave,
MESSE_DUESSELDORF_39_Eacute,
MESSE_DUESSELDORF_39_Ecirc,
MESSE_DUESSELDORF_39_Euml,
MESSE_DUESSELDORF_39_Igrave,
MESSE_DUESSELDORF_39_Iacute,
MESSE_DUESSELDORF_39_Icirc,
MESSE_DUESSELDORF_39_Iuml,
MESSE_DUESSELDORF_39_ETH,
MESSE_DUESSELDORF_39_Ntilde,
MESSE_DUESSELDORF_39_Ograve,
MESSE_DUESSELDORF_39_Oacute,
MESSE_DUESSELDORF_39_Ocirc,
MESSE_DUESSELDORF_39_Otilde,
MESSE_DUESSELDORF_39_Ouml,
MESSE_DUESSELDORF_39_times,
MESSE_DUESSELDORF_39_Oslash,
MESSE_DUESSELDORF_39_Ugrave,
MESSE_DUESSELDORF_39_Uacute,
MESSE_DUESSELDORF_39_Ucirc,
MESSE_DUESSELDORF_39_Uuml,
MESSE_DUESSELDORF_39_Yacute,
MESSE_DUESSELDORF_39_THORN,
MESSE_DUESSELDORF_39_szlig,
MESSE_DUESSELDORF_39_agrave,
MESSE_DUESSELDORF_39_aacute,
MESSE_DUESSELDORF_39_acirc,
MESSE_DUESSELDORF_39_atilde,
MESSE_DUESSELDORF_39_auml,
MESSE_DUESSELDORF_39_aring,
MESSE_DUESSELDORF_39_aelig,
MESSE_DUESSELDORF_39_ccedil,
MESSE_DUESSELDORF_39_egrave,
MESSE_DUESSELDORF_39_eacute,
MESSE_DUESSELDORF_39_ecirc,
MESSE_DUESSELDORF_39_euml,
MESSE_DUESSELDORF_39_igrave,
MESSE_DUESSELDORF_39_iacute,
MESSE_DUESSELDORF_39_icirc,
MESSE_DUESSELDORF_39_iuml,
MESSE_DUESSELDORF_39_eth,
MESSE_DUESSELDORF_39_ntilde,
MESSE_DUESSELDORF_39_ograve,
MESSE_DUESSELDORF_39_oacute,
MESSE_DUESSELDORF_39_ocirc,
MESSE_DUESSELDORF_39_otilde,
MESSE_DUESSELDORF_39_ouml,
MESSE_DUESSELDORF_39_div,
MESSE_DUESSELDORF_39_oslash,
MESSE_DUESSELDORF_39_ugrave,
MESSE_DUESSELDORF_39_uacute,
MESSE_DUESSELDORF_39_ucirc,
MESSE_DUESSELDORF_39_uuml,
MESSE_DUESSELDORF_39_yacute,
MESSE_DUESSELDORF_39_thorn,
};
extern const Font_t Messe_Duesseldorf_39;

View file

@ -15,6 +15,7 @@ typedef enum
#define LTP1245_MAX_DRIVE_FREQ 473 // In Hz #define LTP1245_MAX_DRIVE_FREQ 473 // In Hz
#define LTP1245_BUFFER_LINES 64 #define LTP1245_BUFFER_LINES 64
#define LTP1245_LINEWIDTH 384 // In pixels #define LTP1245_LINEWIDTH 384 // In pixels
#define LTP1245_LINE_BYTES (LTP1245_LINEWIDTH / 8)
#define LTP1245_TH_REXT 10 // In kΩ #define LTP1245_TH_REXT 10 // In kΩ

View file

@ -5,7 +5,7 @@ int main(void)
USB_Init(); USB_Init();
LTP1245_Init(); LTP1245_Init();
LTP1245_FeedPaper(10); // LTP1245_FeedPaper(10);
uint8_t buff[LTP1245_LINEWIDTH / 8 * 16]; uint8_t buff[LTP1245_LINEWIDTH / 8 * 16];
for(int i = 0; i < sizeof(buff); i++) for(int i = 0; i < sizeof(buff); i++)
@ -14,9 +14,13 @@ int main(void)
buff[i] = (0x11 << shift) | (0x11 >> (8 - shift)); buff[i] = (0x11 << shift) | (0x11 >> (8 - shift));
} }
LTP1245_Print(buff, 16); // LTP1245_Print(buff, 16);
LTP1245_Print(buff, 5); // LTP1245_Print(buff, 5);
LTP1245_FeedPaper(10); // LTP1245_FeedPaper(10);
// Print_Text("Testy McTestFace", &Arpegius_32);
// Print_Text("123555bcD", &Messe_Duesseldorf_39);
Print_Text("Abcdef Ghi Jkl", &Hannover_Messe_Serif_26);
LTP1245_FeedPaper(16);
for(;;) for(;;)
{ {

View file

@ -9,6 +9,11 @@
#include "debug.h" #include "debug.h"
#include "usb.h" #include "usb.h"
#include "ltp1245.h" #include "ltp1245.h"
#include "print.h"
#include "font_hannover_messe_serif_26.h"
#include "font_messe_duesseldorf_39.h"
#include "font_arpegius_16.h"
#include "font_arpegius_32.h"
int main(void); int main(void);

39
src/print.c Normal file
View file

@ -0,0 +1,39 @@
#include "print.h"
#include "ltp1245.h"
static uint8_t Print_Buffer[64 * LTP1245_LINE_BYTES];
void Print_Text(const char *text, const Font_t *font)
{
int height = font->height;
memset(Print_Buffer, 0, LTP1245_LINE_BYTES * height);
char c;
int xpos = 0;
while((c = *text++) != 0)
{
if(c > font->glyphcount + font->charoffset
|| c < font->charoffset)
{
continue;
}
int width = font->glyphs[c - font->charoffset].width;
const uint8_t *bitmap = font->glyphs[c - font->charoffset].bitmap;
for(int i = 0; i < width * height; i++)
{
int x = i / height + xpos;
int y = i % height;
if(bitmap[i / 8] & (0x80 >> (i % 8)))
{
// Pixel is black
Print_Buffer[y * LTP1245_LINE_BYTES + x / 8] |=
0x80 >> (x % 8);
}
}
xpos += width;
}
LTP1245_Print(Print_Buffer, height);
}

10
src/print.h Normal file
View file

@ -0,0 +1,10 @@
#pragma once
#include <stdbool.h>
#include <string.h>
#include "font.h"
#define PRINT_BUFFER_LINES 64
void Print_Text(const char *text, const Font_t *font);