Basic 3D graphics for the MBED application-shield on-board LCD (initial/incomplete).
Embed:
(wiki syntax)
Show/hide line numbers
g3d_font04b.cpp
00001 /* 00002 * g3d_font04b.cpp -- G3D font rendering for Yuji Oshimoo's font 04b30 (www.04.jp.org) 00003 * Fred Barnes, University of Kent 00004 */ 00005 00006 00007 #include "mbed.h" 00008 #include "C12832.h" 00009 #include "gfx3d.h" 00010 00011 static uint8_t font_metrics_04b[96] = { 00012 0xe1, 0x37, 0x2d, 0x2f, 0xe1, 0x2f, 0xe1, 0x25, 0x38, 0x47, 0x37, 0x2f, 0x25, 0x2d, 0x25, 0x2f, 00013 0x2f, 0x2a, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x25, 0x25, 0x2a, 0x2d, 0x2a, 0x2f, 00014 0xe1, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x37, 0x2f, 0x2f, 0x2e, 0x20, 0x2f, 0x2f, 00015 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x20, 0x2f, 0x2f, 0x2f, 0x37, 0x2f, 0x37, 0x38, 0x2f, 00016 0x38, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x26, 0x2d, 0x2d, 0x2c, 0x2e, 0x2d, 0x2d, 00017 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2e, 0x2d, 0x2d, 0x2d, 0x2a, 0x37, 0x2a, 0x38, 0x00, 00018 }; 00019 00020 /* 2x8-bit vertical slices, LSB=topmost (big-endian pairs) */ 00021 static uint8_t font_data_04b[96*32] = { 00022 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00023 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00024 0x00, 0x3c, 0x71, 0xe2, 0xfb, 0xfa, 0xfb, 0xfa, 0xfb, 0xfe, 0x71, 0xfe, 0x00, 0x3c, 0x00, 0x00, 00025 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00026 0x01, 0xf8, 0x03, 0xc4, 0x03, 0xf4, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 00027 0x03, 0xc4, 0x03, 0xf4, 0x03, 0xf4, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00028 0x00, 0x60, 0x18, 0xe0, 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0x7f, 0xfc, 0x08, 0xe0, 00029 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x18, 0xe0, 0x00, 0x60, 0x00, 0x00, 00030 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00031 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00032 0x70, 0x1c, 0xf8, 0x22, 0xfe, 0x3a, 0xfe, 0x3a, 0x7f, 0x1c, 0x3f, 0xc0, 0x3f, 0xc0, 0x1f, 0xe0, 00033 0x07, 0xf8, 0x07, 0xf8, 0x71, 0xfc, 0xf8, 0xfe, 0xf8, 0xfe, 0xf8, 0x3e, 0x70, 0x1c, 0x00, 0x00, 00034 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00035 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00036 0x01, 0xf8, 0x03, 0xc4, 0x03, 0xf4, 0x03, 0xf4, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00037 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00038 0x07, 0x80, 0x3f, 0xf0, 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xf8, 0x7e, 0xf0, 0x1e, 0x60, 0x0c, 00039 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00040 0x70, 0x0c, 0xf0, 0x12, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x0f, 0xf0, 0x00, 0x00, 00041 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00042 0x00, 0xdc, 0x01, 0xe2, 0x01, 0xfa, 0x01, 0xfa, 0x00, 0xfc, 0x01, 0xfe, 0x00, 0xdc, 0x00, 0x00, 00043 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00044 0x03, 0x00, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 00045 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x03, 0x00, 0x00, 0x00, 00046 0x7c, 0x00, 0xe2, 0x00, 0xfa, 0x00, 0xfa, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00047 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00048 0x07, 0x00, 0x08, 0xc0, 0x0e, 0xc0, 0x0e, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 00049 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x0f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00050 0x38, 0x00, 0x44, 0x00, 0x74, 0x00, 0x74, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00051 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00052 0x70, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0x7f, 0x00, 0x3f, 0xc0, 0x1f, 0xe0, 0x0f, 0xf0, 00053 0x07, 0xf8, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x00, 0xfe, 0x00, 0x3e, 0x00, 0x1c, 0x00, 0x00, 00054 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00055 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00, 00056 0x00, 0x1c, 0x00, 0x02, 0x7f, 0xfa, 0x7f, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00057 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00058 0x7f, 0x1c, 0xff, 0x02, 0xff, 0xda, 0xff, 0xda, 0xff, 0xde, 0xff, 0xde, 0xff, 0xde, 0xfb, 0xde, 00059 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xf8, 0xfc, 0x70, 0xf8, 0x00, 0x00, 00060 0x30, 0x08, 0x78, 0x10, 0xfb, 0xda, 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde, 00061 0xfb, 0xde, 0xfb, 0xde, 0xfb, 0xde, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00, 00062 0x07, 0xfc, 0x0f, 0xe2, 0x1f, 0xfa, 0x1f, 0xfa, 0x1f, 0xfe, 0x1f, 0xfc, 0x1e, 0x00, 0x7f, 0xfc, 00063 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00, 00064 0x71, 0xfc, 0xfb, 0xe2, 0xfb, 0xfa, 0xfb, 0xfa, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xde, 00065 0xfb, 0xde, 0xfb, 0xde, 0xff, 0xde, 0xff, 0xde, 0xff, 0xde, 0x7f, 0x1e, 0x3e, 0x1c, 0x00, 0x00, 00066 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00067 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0x8e, 0xff, 0x8e, 0x7f, 0x04, 0x3e, 0x00, 0x00, 0x00, 00068 0x00, 0x1c, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x1a, 0x7e, 0x1e, 0xff, 0x1e, 0xff, 0xde, 0xff, 0xfe, 00069 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x00, 0xfe, 0x00, 0x3c, 0x00, 0x00, 00070 0x3e, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00071 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3e, 0xf8, 0x00, 0x00, 00072 0x00, 0xf8, 0x01, 0xf0, 0x03, 0xfa, 0x43, 0xfe, 0xe3, 0xfe, 0xe3, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 00073 0x7f, 0x8e, 0x7f, 0x8e, 0x3f, 0x8e, 0x1f, 0xfe, 0x1f, 0xfe, 0x07, 0xfc, 0x01, 0xf8, 0x00, 0x00, 00074 0x3c, 0x38, 0x78, 0xc4, 0x78, 0xf4, 0x78, 0xf4, 0x3c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00075 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00076 0x7e, 0x1c, 0xfc, 0x62, 0xfc, 0x7a, 0xfc, 0x7a, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00077 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00078 0x07, 0x80, 0x0f, 0xe0, 0x0f, 0xe0, 0x3f, 0xf8, 0x7f, 0xe0, 0xfc, 0x7a, 0xfc, 0x7a, 0xf0, 0x1e, 00079 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00080 0x38, 0x38, 0x7c, 0x44, 0x7c, 0x74, 0x7c, 0x74, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 00081 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00082 0x60, 0x1c, 0xe0, 0x02, 0xf8, 0x3a, 0xf8, 0x3a, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xe0, 0x0f, 0xf0, 00083 0x07, 0xc0, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00084 0x00, 0x1c, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x1a, 0x70, 0x1e, 0xfd, 0xde, 0xfd, 0xde, 0xfd, 0xde, 00085 0x71, 0xde, 0x71, 0xde, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0x00, 00086 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00087 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00088 0x7f, 0xf8, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 00089 0x01, 0x8e, 0x01, 0x8e, 0x01, 0x8e, 0x7f, 0xfe, 0xff, 0xfc, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 00090 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00091 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x3e, 0xfc, 0x00, 0x00, 00092 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xf0, 0x0e, 00093 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0x60, 0x04, 0x00, 0x00, 00094 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00095 0xf0, 0x1e, 0xf0, 0x1e, 0xf0, 0x1e, 0xff, 0xfe, 0xff, 0xfc, 0x7f, 0xf8, 0x3f, 0xe0, 0x00, 0x00, 00096 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xf1, 0x8e, 00097 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0xf1, 0x8e, 0x61, 0xc6, 0x00, 0x00, 00098 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x03, 0x8e, 00099 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x03, 0x8e, 0x01, 0xc6, 0x00, 0x00, 00100 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00101 0xf0, 0x0e, 0xf1, 0x8e, 0xf1, 0x8e, 0xff, 0x8e, 0xff, 0x8e, 0x7f, 0x8e, 0x3f, 0x84, 0x00, 0x00, 00102 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x03, 0xc0, 00103 0x03, 0xc0, 0x03, 0xc0, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00, 00104 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00, 00105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00106 0x3e, 0x00, 0x7f, 0x00, 0xff, 0x00, 0xff, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xff, 0xfc, 00107 0xff, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00, 00108 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 00109 0x0f, 0xe0, 0x1f, 0xe0, 0x1f, 0xe0, 0x7f, 0xfc, 0xfe, 0xfe, 0xfc, 0x7e, 0x70, 0x1c, 0x00, 0x00, 00110 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0xf0, 0x00, 00111 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 00112 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfc, 0x7f, 0xfc, 0x0f, 0xc0, 00113 0x1f, 0x00, 0x1f, 0x00, 0x0f, 0xc0, 0x7f, 0xfc, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 00114 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x07, 0xc0, 00115 0x0f, 0x00, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00, 00116 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00117 0xf0, 0x0e, 0xf0, 0x0e, 0xf0, 0x0e, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00, 00118 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x0e, 0x1e, 00119 0x0e, 0x1e, 0x0e, 0x1e, 0x0f, 0xfe, 0x0f, 0xfe, 0x0f, 0xfe, 0x07, 0xfc, 0x03, 0xf8, 0x00, 0x00, 00120 0x0f, 0xfe, 0x1f, 0xfc, 0x3f, 0xfe, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 00121 0xfc, 0x03, 0xfc, 0x03, 0xfc, 0x03, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0x0f, 0xfe, 0x00, 0x00, 00122 0x7f, 0xfe, 0xff, 0xf0, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 00123 0x0f, 0x8e, 0x1f, 0x8e, 0x1f, 0x8e, 0x7f, 0xfe, 0xff, 0xfe, 0xfd, 0xfe, 0x78, 0xfc, 0x00, 0x00, 00124 0x71, 0xf8, 0xfb, 0xf0, 0xfb, 0xfa, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xfe, 0xfb, 0xde, 00125 0xfb, 0xde, 0xfb, 0xde, 0xff, 0xde, 0xff, 0xde, 0xff, 0xde, 0x7f, 0xde, 0x3f, 0x8c, 0x00, 0x00, 00126 0x00, 0x1c, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x1a, 0x7f, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 00127 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x1c, 0x00, 0x00, 00128 0x3f, 0xfc, 0x7f, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0xf0, 0x00, 00129 0xf0, 0x00, 0xf0, 0x00, 0xff, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x3f, 0xfc, 0x00, 0x00, 00130 0x3f, 0xfc, 0x7f, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0xfc, 0x00, 00131 0x7e, 0x00, 0x7e, 0x00, 0x3f, 0xfc, 0x1f, 0xfe, 0x0f, 0xfe, 0x07, 0xfe, 0x03, 0xfc, 0x00, 0x00, 00132 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x7f, 0xfc, 00133 0x3e, 0x00, 0x1f, 0x00, 0x3e, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 00134 0x40, 0x1c, 0xfc, 0x22, 0xf8, 0xfa, 0x78, 0xfc, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xe0, 0x1f, 0xe0, 00135 0x1f, 0xe0, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0xf8, 0xfe, 0xfc, 0x3e, 0x40, 0x1c, 0x00, 0x00, 00136 0x00, 0x1c, 0x00, 0x72, 0x00, 0xfa, 0x01, 0xfe, 0x7f, 0xfe, 0xff, 0xfc, 0xff, 0xf8, 0xff, 0xf8, 00137 0xff, 0xfc, 0xff, 0xfc, 0x7f, 0xfe, 0x01, 0xfe, 0x00, 0xfe, 0x00, 0x7e, 0x00, 0x1c, 0x00, 0x00, 00138 0x70, 0x1c, 0xf8, 0x02, 0xfc, 0x1a, 0xfc, 0x1a, 0xff, 0x1e, 0xff, 0xde, 0xff, 0xfe, 0xff, 0xfe, 00139 0xff, 0xfe, 0xff, 0xfe, 0xfb, 0xfe, 0xf8, 0xfe, 0xf8, 0xfe, 0xf8, 0x3e, 0x70, 0x1c, 0x00, 0x00, 00140 0x3f, 0xf8, 0x7f, 0xe0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xf0, 0x3e, 0x70, 0x1c, 0x00, 0x00, 00141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00142 0x00, 0x1c, 0x00, 0x22, 0x00, 0xfa, 0x00, 0xfa, 0x03, 0xfc, 0x07, 0xf8, 0x0f, 0xe0, 0x1f, 0xe0, 00143 0x3f, 0xc0, 0x3f, 0xc0, 0x7f, 0x00, 0xfe, 0x00, 0xfc, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00, 00144 0x60, 0x1c, 0xf0, 0x02, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00, 00145 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00146 0x00, 0x38, 0x00, 0xc4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x38, 00147 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00148 0x70, 0x00, 0x88, 0x00, 0xe8, 0x00, 0xe8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 00149 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00, 00150 0x00, 0x38, 0x00, 0xc4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x38, 00151 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00152 0x7f, 0xe0, 0xff, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf8, 0x07, 0xb8, 00153 0x07, 0xb8, 0x07, 0xb8, 0x7f, 0xf8, 0xff, 0xf0, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00154 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf7, 0x78, 00155 0xf7, 0x78, 0xf7, 0x78, 0xff, 0xf8, 0x7f, 0xf0, 0x3d, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00156 0x3f, 0xe0, 0x7f, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf8, 0x38, 0xf8, 0x38, 00157 0xf8, 0x38, 0xf8, 0x38, 0xf8, 0x38, 0xf8, 0x38, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00158 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf0, 0x78, 00159 0xf0, 0x78, 0xf0, 0x78, 0xff, 0xf0, 0x7f, 0xe0, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00160 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xf7, 0xb8, 0xf7, 0xb8, 00161 0xf7, 0xb8, 0xf7, 0xb8, 0xf7, 0xb8, 0xf7, 0xb8, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00162 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf8, 0x07, 0xb8, 0x07, 0xb8, 00163 0x07, 0xb8, 0x07, 0xb8, 0x07, 0xb8, 0x07, 0xb8, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00164 0x3f, 0xe0, 0x7f, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf0, 0x38, 00165 0xf0, 0x38, 0xf2, 0x38, 0xff, 0xb8, 0x7f, 0xb8, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00166 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0x7f, 0xf0, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 00167 0x7f, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00168 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 00169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00170 0x3c, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xff, 0xf0, 0xff, 0x88, 00171 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00172 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0x1f, 0x80, 0x3f, 0xe0, 00173 0x3f, 0xe0, 0x7f, 0xf0, 0xfd, 0xf8, 0xf8, 0xf8, 0x60, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00174 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf0, 0xf0, 0x00, 0xf0, 0x00, 00175 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00176 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0x7f, 0xf0, 0x7f, 0xf0, 0x07, 0x80, 0x0f, 0x00, 00177 0x0f, 0x00, 0x07, 0x80, 0x7f, 0xf0, 0x7f, 0xf0, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 00178 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x7f, 0xf0, 0x03, 0x80, 0x07, 0x00, 00179 0x7f, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00180 0x3f, 0xe0, 0x7f, 0xc0, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xf8, 0x38, 00181 0xf8, 0x38, 0xf8, 0x38, 0xff, 0xf8, 0x7f, 0xf0, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00182 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0x0e, 0x38, 0x0e, 0x38, 0x0e, 0x38, 00183 0x0f, 0xf8, 0x0f, 0xf8, 0x0f, 0xf8, 0x07, 0xf0, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00184 0x0f, 0xf8, 0x1f, 0xf0, 0x3f, 0xfa, 0x3f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfe, 0xfe, 0x0e, 00185 0xfe, 0x0e, 0xfe, 0x0e, 0xff, 0xfe, 0x1f, 0xfc, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00186 0x7f, 0xf0, 0xff, 0xc8, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0x0f, 0xb8, 0x1f, 0xb8, 00187 0x1f, 0xb8, 0x7f, 0xf8, 0x7f, 0xf8, 0xfb, 0xf0, 0x71, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00188 0x71, 0xe0, 0xfb, 0xc0, 0xfb, 0xe8, 0xfb, 0xf8, 0xfb, 0xf8, 0xfb, 0xf8, 0xfb, 0xb8, 0xfb, 0xb8, 00189 0xff, 0xb8, 0xff, 0xb8, 0xff, 0xb8, 0x7f, 0xb8, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00190 0x00, 0x70, 0x00, 0x88, 0x00, 0xe8, 0x00, 0xe8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 00191 0x7f, 0xf8, 0x7f, 0xf8, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00192 0x3f, 0xf0, 0x7f, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf0, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0x00, 00193 0xff, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00194 0x3f, 0xf0, 0x7f, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0xff, 0xf8, 0xff, 0xf0, 0xf8, 0x00, 0x7c, 0x00, 00195 0x7c, 0x00, 0x3f, 0xf0, 0x1f, 0xf8, 0x0f, 0xf8, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00196 0x7f, 0xf0, 0xff, 0x88, 0xff, 0xe8, 0xff, 0xe8, 0x7f, 0xf0, 0x7f, 0xf0, 0x3c, 0x00, 0x1e, 0x00, 00197 0x3c, 0x00, 0x7f, 0xf0, 0x7f, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 00198 0x40, 0xf0, 0xf1, 0x88, 0xfb, 0xe8, 0xfb, 0xe8, 0x7f, 0xe0, 0x3f, 0x80, 0x1f, 0xe0, 0x3f, 0xf0, 00199 0x7f, 0xf8, 0x7f, 0xf8, 0xfd, 0xf8, 0xf8, 0xf8, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00200 0x00, 0x70, 0x00, 0x88, 0x01, 0xe8, 0x01, 0xe8, 0x7f, 0xf0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 00201 0x7f, 0xf0, 0x7f, 0xf8, 0x01, 0xf8, 0x00, 0xf8, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00202 0x40, 0x70, 0xf0, 0x88, 0xf8, 0xe8, 0xf8, 0xe8, 0xfe, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 00203 0xfb, 0xf8, 0xfb, 0xf8, 0xf9, 0xf8, 0xf8, 0xf8, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00204 0x03, 0x00, 0x07, 0xc0, 0x3f, 0xf8, 0x7f, 0xf0, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0xf0, 0x1e, 00205 0x60, 0x0c, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00206 0x7f, 0xfc, 0xff, 0xe2, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x00, 0x00, 00207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00208 0x60, 0x1c, 0xf0, 0x02, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x07, 0xc0, 00209 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00210 0x00, 0x38, 0x00, 0xc4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x38, 00211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00212 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 00214 }; 00215 00216 00217 int gfx3d_font04b_char_dpw (const char ch) 00218 { 00219 int sel, cw, sw; 00220 00221 if ((ch < 32) || (ch > 127)) { 00222 return 0; 00223 } 00224 sel = ch - 32; 00225 cw = (font_metrics_04b[sel] & 0x0f); 00226 if (!cw) { 00227 cw = 16; 00228 } 00229 sw = (font_metrics_04b[sel] >> 4) & 0x0f; 00230 if (!sw) { 00231 sw = 16; 00232 } 00233 return cw + sw; 00234 } 00235 00236 00237 void gfx3d_font04b_tx_putchar (uint8_t *txbuf, const int txwidth, int *xptr, const int y, const char ch, const bool inv) 00238 { 00239 int sel, cw, sw, i, dcs, dcw; 00240 00241 if ((ch < 32) || (ch > 127)) { 00242 return; 00243 } 00244 sel = ch - 32; 00245 cw = (font_metrics_04b[sel] & 0x0f); 00246 if (!cw) { 00247 cw = 16; 00248 } 00249 sw = (font_metrics_04b[sel] >> 4) & 0x0f; 00250 if (!sw) { 00251 sw = 16; 00252 } 00253 00254 if (*xptr >= txwidth) { 00255 *xptr += cw+sw; /* advance space but do nothing else */ 00256 return; 00257 } else if ((*xptr + cw) < 0) { 00258 /* all character data off-left, advance space and nothing else */ 00259 *xptr += cw+sw; 00260 return; 00261 } 00262 sel <<= 5; /* in 32-byte steps */ 00263 00264 if ((*xptr + cw) > txwidth) { 00265 /* means it won't all fit */ 00266 dcw = (txwidth - *xptr); 00267 } else { 00268 dcw = cw; 00269 } 00270 if (*xptr < 0) { 00271 dcs = -*xptr; 00272 } else { 00273 dcs = 0; 00274 } 00275 00276 /* copy in character data */ 00277 for (i=dcs; i<dcw; i++) { 00278 uint8_t chigh = font_data_04b[sel + (i << 1) + 0]; 00279 uint8_t clow = font_data_04b[sel + (i << 1) + 1]; 00280 00281 if (inv) { 00282 chigh = ~chigh; 00283 clow = ~clow; 00284 } 00285 00286 if (y == 0) { 00287 txbuf[((*xptr + i) << 2) + 0] = clow; 00288 txbuf[((*xptr + i) << 2) + 1] = chigh; 00289 } else if (y == 8) { 00290 txbuf[((*xptr + i) << 2) + 1] = clow; 00291 txbuf[((*xptr + i) << 2) + 2] = chigh; 00292 } else if (y == 16) { 00293 txbuf[((*xptr + i) << 2) + 2] = clow; 00294 txbuf[((*xptr + i) << 2) + 3] = chigh; 00295 } else { 00296 /* FIXME: all the other cases */ 00297 } 00298 } 00299 *xptr += cw + sw; 00300 00301 return; 00302 } 00303 00304 00305 void gfx3d_font04b_tx_putstr (uint8_t *txbuf, const int txwidth, int *xptr, const int y, const char *str, const bool inv) 00306 { 00307 const char *ch; 00308 00309 for (ch=str; (*ch != '\0'); ch++) { 00310 gfx3d_font04b_tx_putchar (txbuf, txwidth, xptr, y, *ch, inv); 00311 } 00312 return; 00313 } 00314 00315 00316 void gfx3d_font04b_tx_putstrn (uint8_t *txbuf, const int txwidth, int *xptr, const int y, const char *str, const int slen, const bool inv) 00317 { 00318 const char *ch; 00319 int left = slen; 00320 00321 for (ch=str; (*ch != '\0') && left; ch++, left--) { 00322 gfx3d_font04b_tx_putchar (txbuf, txwidth, xptr, y, *ch, inv); 00323 } 00324 return; 00325 } 00326
Generated on Wed Jul 13 2022 15:11:24 by 1.7.2