Small bitmap-library to use with monocrome displays.

Committer:
glx
Date:
Fri Aug 31 16:04:15 2018 +0000
Revision:
5:481c2e048ca4
Parent:
4:5d6f6e0191b8
Child:
6:c558f38d07ca
Bugfix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
glx 0:f068fae80257 1 #define M_PI 3.14159265358979323846 //Pi
glx 0:f068fae80257 2
glx 0:f068fae80257 3 #include "mbed.h"
glx 0:f068fae80257 4 #include <math.h>
glx 0:f068fae80257 5 #include "TinyBitmap.h"
glx 0:f068fae80257 6
glx 5:481c2e048ca4 7 TinyBitmap::TinyBitmap(int width, int height, char *framebuffer, int commandbytes, int bitmaplayout) //Constructor
glx 0:f068fae80257 8 {
glx 0:f068fae80257 9 _IMAGEWIDTH = width;
glx 0:f068fae80257 10 _IMAGEHEIGHT = height;
glx 0:f068fae80257 11 _COMMANDBYTES = commandbytes;
glx 0:f068fae80257 12 _BITMAPLAYOUT = bitmaplayout;
glx 4:5d6f6e0191b8 13 _FRAMEBUFFER = &framebuffer;
glx 0:f068fae80257 14
glx 0:f068fae80257 15 Bit0 = 0x01;
glx 0:f068fae80257 16 Bit1 = 0x02;
glx 0:f068fae80257 17 Bit2 = 0x04;
glx 0:f068fae80257 18 Bit3 = 0x08;
glx 0:f068fae80257 19 Bit4 = 0x10;
glx 0:f068fae80257 20 Bit5 = 0x20;
glx 0:f068fae80257 21 Bit6 = 0x40;
glx 0:f068fae80257 22 Bit7 = 0x80;
glx 0:f068fae80257 23 }
glx 0:f068fae80257 24
glx 4:5d6f6e0191b8 25 void TinyBitmap::DrawPixel(int x, int y)
glx 0:f068fae80257 26 {
glx 0:f068fae80257 27 bool InsideBorders = true;
glx 0:f068fae80257 28 if (x < 0 | y < 0 | x > _IMAGEWIDTH - 1 | y > _IMAGEHEIGHT - 1) InsideBorders = false;
glx 0:f068fae80257 29
glx 0:f068fae80257 30 if(_BITMAPLAYOUT == 0x00 && InsideBorders) {
glx 0:f068fae80257 31 int pixelnumber = (y * _IMAGEWIDTH) + x; //get the 1D pixel-position
glx 0:f068fae80257 32 int bytecount = pixelnumber / 8; //the byte-number
glx 0:f068fae80257 33 int offset = pixelnumber % 8; //the bit inside the byte
glx 0:f068fae80257 34 char modifier = 0;
glx 0:f068fae80257 35
glx 0:f068fae80257 36 if (offset == 0) modifier = Bit7;
glx 0:f068fae80257 37 if (offset == 1) modifier = Bit6;
glx 0:f068fae80257 38 if (offset == 2) modifier = Bit5;
glx 0:f068fae80257 39 if (offset == 3) modifier = Bit4;
glx 0:f068fae80257 40 if (offset == 4) modifier = Bit3;
glx 0:f068fae80257 41 if (offset == 5) modifier = Bit2;
glx 0:f068fae80257 42 if (offset == 6) modifier = Bit1;
glx 0:f068fae80257 43 if (offset == 7) modifier = Bit0;
glx 0:f068fae80257 44
glx 4:5d6f6e0191b8 45 *_FRAMEBUFFER[bytecount + _COMMANDBYTES] = (char)(*_FRAMEBUFFER[bytecount + _COMMANDBYTES] | modifier);
glx 0:f068fae80257 46 }
glx 0:f068fae80257 47
glx 0:f068fae80257 48 if (_BITMAPLAYOUT == 0x02 && InsideBorders)
glx 0:f068fae80257 49 {
glx 0:f068fae80257 50 int MemPage = y / 8;
glx 0:f068fae80257 51 int bytecount = x + (_IMAGEWIDTH * MemPage); //the byte-number
glx 0:f068fae80257 52 int offset = y % 8; //the bit inside the byte
glx 0:f068fae80257 53 //int pixelnumber = (bytecount * 8) + offset; //get the 1D pixel-position
glx 0:f068fae80257 54 char modifier = 0;
glx 0:f068fae80257 55
glx 0:f068fae80257 56 if (offset == 7) modifier = Bit7;
glx 0:f068fae80257 57 if (offset == 6) modifier = Bit6;
glx 0:f068fae80257 58 if (offset == 5) modifier = Bit5;
glx 0:f068fae80257 59 if (offset == 4) modifier = Bit4;
glx 0:f068fae80257 60 if (offset == 3) modifier = Bit3;
glx 0:f068fae80257 61 if (offset == 2) modifier = Bit2;
glx 0:f068fae80257 62 if (offset == 1) modifier = Bit1;
glx 0:f068fae80257 63 if (offset == 0) modifier = Bit0;
glx 0:f068fae80257 64
glx 4:5d6f6e0191b8 65 *_FRAMEBUFFER[bytecount + _COMMANDBYTES] = (char)(*_FRAMEBUFFER[bytecount + _COMMANDBYTES] | modifier);
glx 0:f068fae80257 66 }
glx 0:f068fae80257 67
glx 0:f068fae80257 68 if (_BITMAPLAYOUT == 0x04 && InsideBorders)
glx 0:f068fae80257 69 {
glx 0:f068fae80257 70 int pixelnumber = (y * _IMAGEWIDTH) + x; //get the 1D pixel-position
glx 0:f068fae80257 71 int bytecount = pixelnumber / 8; //the byte-number
glx 0:f068fae80257 72 int offset = pixelnumber % 8; //the bit inside the byte
glx 0:f068fae80257 73 char modifier = 0;
glx 0:f068fae80257 74
glx 0:f068fae80257 75 if (offset == 7) modifier = Bit7;
glx 0:f068fae80257 76 if (offset == 6) modifier = Bit6;
glx 0:f068fae80257 77 if (offset == 5) modifier = Bit5;
glx 0:f068fae80257 78 if (offset == 4) modifier = Bit4;
glx 0:f068fae80257 79 if (offset == 3) modifier = Bit3;
glx 0:f068fae80257 80 if (offset == 2) modifier = Bit2;
glx 0:f068fae80257 81 if (offset == 1) modifier = Bit1;
glx 0:f068fae80257 82 if (offset == 0) modifier = Bit0;
glx 0:f068fae80257 83
glx 4:5d6f6e0191b8 84 *_FRAMEBUFFER[bytecount + _COMMANDBYTES] = (char)(*_FRAMEBUFFER[bytecount + _COMMANDBYTES] | modifier);
glx 0:f068fae80257 85 }
glx 0:f068fae80257 86
glx 0:f068fae80257 87 }
glx 0:f068fae80257 88
glx 4:5d6f6e0191b8 89 void TinyBitmap::DrawLine(int x1, int y1, int x2, int y2)
glx 0:f068fae80257 90 {
glx 0:f068fae80257 91 float xdiff_abs = abs(x2 - x1);
glx 0:f068fae80257 92 float ydiff_abs = abs(y2 - y1);
glx 0:f068fae80257 93
glx 0:f068fae80257 94 float steps;
glx 0:f068fae80257 95 if (xdiff_abs >= ydiff_abs) steps = xdiff_abs;
glx 0:f068fae80257 96 else steps = ydiff_abs;
glx 0:f068fae80257 97
glx 0:f068fae80257 98 for (float i = 0; i <= (int)steps; i++)
glx 0:f068fae80257 99 {
glx 0:f068fae80257 100 float corrector = 0;
glx 0:f068fae80257 101 if (i == 0 && steps == 0) {
glx 0:f068fae80257 102 corrector = 1;
glx 0:f068fae80257 103 }
glx 0:f068fae80257 104 //X-Values:
glx 0:f068fae80257 105 float pX = x1 + ((x2 - x1) / (steps + corrector) * i);
glx 0:f068fae80257 106 //Y-Values:
glx 0:f068fae80257 107 float pY = y1 + ((y2 - y1) / (steps + corrector) * i);
glx 4:5d6f6e0191b8 108 DrawPixel((int)pX, (int)pY);
glx 0:f068fae80257 109 }
glx 0:f068fae80257 110 }
glx 0:f068fae80257 111
glx 4:5d6f6e0191b8 112 void TinyBitmap::DrawCircle(int x, int y, int radius)
glx 0:f068fae80257 113 {
glx 0:f068fae80257 114 if(radius < 1) radius = 1;
glx 0:f068fae80257 115
glx 0:f068fae80257 116 for (float rad = 0; rad < M_PI * 2 ; rad += (float)(5 / (2 * M_PI * radius)))
glx 0:f068fae80257 117 {
glx 4:5d6f6e0191b8 118 DrawPixel(x + (int)(radius * cos(rad)), y + (int)(radius * sin(rad)));
glx 0:f068fae80257 119 }
glx 0:f068fae80257 120 }
glx 0:f068fae80257 121
glx 4:5d6f6e0191b8 122 void TinyBitmap::DrawRectangle(int x1, int y1, int x2, int y2)
glx 0:f068fae80257 123 {
glx 4:5d6f6e0191b8 124 DrawLine(x1, y1, x1, y2);
glx 4:5d6f6e0191b8 125 DrawLine(x1, y1, x2, y1);
glx 4:5d6f6e0191b8 126 DrawLine(x2, y1, x2, y2);
glx 4:5d6f6e0191b8 127 DrawLine(x2, y2, x1, y2);
glx 0:f068fae80257 128 }
glx 0:f068fae80257 129
glx 4:5d6f6e0191b8 130 void TinyBitmap::DrawLineDirection(int x, int y, int degree, int lenght)
glx 0:f068fae80257 131 {
glx 0:f068fae80257 132 float rad = degree * (float)M_PI / 180;
glx 0:f068fae80257 133 for (int radius = 0; radius <= lenght; radius++)
glx 0:f068fae80257 134 {
glx 4:5d6f6e0191b8 135 DrawPixel(x + (int)(radius * cos(rad)), y + (int)(radius * sin(rad)));
glx 0:f068fae80257 136 }
glx 0:f068fae80257 137 }
glx 0:f068fae80257 138
glx 0:f068fae80257 139
glx 0:f068fae80257 140 //Textrendering
glx 4:5d6f6e0191b8 141 void TinyBitmap::DrawText(int x, int y, char *CharArray, bool UseLargeFont) //removed: string text
glx 0:f068fae80257 142 {
glx 0:f068fae80257 143
glx 0:f068fae80257 144 const char Letter_A[] = { 0x41, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 145 const char Letter_B[] = { 0x42, 0x05, 0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, 0x00 };
glx 0:f068fae80257 146 const char Letter_C[] = { 0x43, 0x05, 0x0E, 0x11, 0x01, 0x01, 0x01, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 147 const char Letter_D[] = { 0x44, 0x05, 0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07, 0x00 };
glx 0:f068fae80257 148 const char Letter_E[] = { 0x45, 0x05, 0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x1F, 0x00 };
glx 0:f068fae80257 149 const char Letter_F[] = { 0x46, 0x05, 0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x01, 0x00 };
glx 0:f068fae80257 150 const char Letter_G[] = { 0x47, 0x05, 0x0E, 0x11, 0x01, 0x1D, 0x11, 0x11, 0x1E, 0x00 };
glx 0:f068fae80257 151 const char Letter_H[] = { 0x48, 0x05, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 152 const char Letter_I[] = { 0x49, 0x05, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00 };
glx 0:f068fae80257 153 const char Letter_J[] = { 0x4A, 0x05, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00 };
glx 0:f068fae80257 154 const char Letter_K[] = { 0x4B, 0x05, 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, 0x00 };
glx 0:f068fae80257 155 const char Letter_L[] = { 0x4C, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1F, 0x00 };
glx 0:f068fae80257 156 const char Letter_M[] = { 0x4D, 0x05, 0x11, 0x1B, 0x15, 0x15, 0x11, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 157 const char Letter_N[] = { 0x4E, 0x05, 0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 158 const char Letter_O[] = { 0x4F, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 159 const char Letter_P[] = { 0x50, 0x05, 0x0F, 0x11, 0x11, 0x0F, 0x01, 0x01, 0x01, 0x00 };
glx 0:f068fae80257 160 const char Letter_Q[] = { 0x51, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x15, 0x09, 0x16, 0x00 };
glx 0:f068fae80257 161 const char Letter_R[] = { 0x52, 0x05, 0x0F, 0x11, 0x11, 0x0F, 0x05, 0x09, 0x11, 0x00 };
glx 0:f068fae80257 162 const char Letter_S[] = { 0x53, 0x05, 0x1E, 0x01, 0x01, 0x0E, 0x10, 0x10, 0x0F, 0x00 };
glx 0:f068fae80257 163 const char Letter_T[] = { 0x54, 0x05, 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00 };
glx 0:f068fae80257 164 const char Letter_U[] = { 0x55, 0x05, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 165 const char Letter_V[] = { 0x56, 0x05, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00 };
glx 0:f068fae80257 166 const char Letter_W[] = { 0x57, 0x05, 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0A, 0x00 };
glx 0:f068fae80257 167 const char Letter_X[] = { 0x58, 0x05, 0x11, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 168 const char Letter_Y[] = { 0x59, 0x05, 0x11, 0x11, 0x0A, 0x04, 0x04, 0x04, 0x04, 0x00 };
glx 0:f068fae80257 169 const char Letter_Z[] = { 0x5A, 0x05, 0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F, 0x00 };
glx 0:f068fae80257 170
glx 0:f068fae80257 171 const char Letter_a[] = { 0x61, 0x05, 0x00, 0x00, 0x0E, 0x10, 0x1E, 0x11, 0x1E, 0x00 };
glx 0:f068fae80257 172 const char Letter_b[] = { 0x62, 0x05, 0x01, 0x01, 0x01, 0x0F, 0x11, 0x11, 0x0F, 0x00 };
glx 0:f068fae80257 173 const char Letter_c[] = { 0x63, 0x05, 0x00, 0x00, 0x1E, 0x01, 0x01, 0x01, 0x1E, 0x00 };
glx 0:f068fae80257 174 const char Letter_d[] = { 0x64, 0x05, 0x10, 0x10, 0x10, 0x1E, 0x11, 0x11, 0x1E, 0x00 };
glx 0:f068fae80257 175 const char Letter_e[] = { 0x65, 0x05, 0x00, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x1E, 0x00 };
glx 0:f068fae80257 176 const char Letter_f[] = { 0x66, 0x05, 0x08, 0x14, 0x04, 0x0E, 0x04, 0x04, 0x04, 0x00 };
glx 0:f068fae80257 177 const char Letter_g[] = { 0x67, 0x05, 0x00, 0x00, 0x1E, 0x11, 0x1E, 0x10, 0x0F, 0x00 };
glx 0:f068fae80257 178 const char Letter_h[] = { 0x68, 0x05, 0x01, 0x01, 0x01, 0x0F, 0x11, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 179 const char Letter_i[] = { 0x69, 0x05, 0x00, 0x04, 0x00, 0x06, 0x04, 0x04, 0x0E, 0x00 };
glx 0:f068fae80257 180 const char Letter_j[] = { 0x6A, 0x05, 0x08, 0x00, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00 };
glx 0:f068fae80257 181 const char Letter_k[] = { 0x6B, 0x05, 0x02, 0x02, 0x12, 0x0A, 0x06, 0x0A, 0x12, 0x00 };
glx 0:f068fae80257 182 const char Letter_l[] = { 0x6C, 0x05, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00 };
glx 0:f068fae80257 183 const char Letter_m[] = { 0x6D, 0x05, 0x00, 0x00, 0x1B, 0x15, 0x15, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 184 const char Letter_n[] = { 0x6E, 0x05, 0x00, 0x00, 0x0D, 0x13, 0x11, 0x11, 0x11, 0x00 };
glx 0:f068fae80257 185 const char Letter_o[] = { 0x6F, 0x05, 0x00, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 186 const char Letter_p[] = { 0x70, 0x05, 0x00, 0x00, 0x0F, 0x11, 0x0F, 0x01, 0x01, 0x00 };
glx 0:f068fae80257 187 const char Letter_q[] = { 0x71, 0x05, 0x00, 0x00, 0x1E, 0x11, 0x1E, 0x10, 0x10, 0x00 };
glx 0:f068fae80257 188 const char Letter_r[] = { 0x72, 0x05, 0x00, 0x00, 0x0D, 0x13, 0x01, 0x01, 0x01, 0x00 };
glx 0:f068fae80257 189 const char Letter_s[] = { 0x73, 0x05, 0x00, 0x00, 0x1E, 0x01, 0x0E, 0x10, 0x0F, 0x00 };
glx 0:f068fae80257 190 const char Letter_t[] = { 0x74, 0x05, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x14, 0x08, 0x00 };
glx 0:f068fae80257 191 const char Letter_u[] = { 0x75, 0x05, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 192 const char Letter_v[] = { 0x76, 0x05, 0x00, 0x00, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00 };
glx 0:f068fae80257 193 const char Letter_w[] = { 0x77, 0x05, 0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0A, 0x00 };
glx 0:f068fae80257 194 const char Letter_x[] = { 0x78, 0x05, 0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x00 };
glx 0:f068fae80257 195 const char Letter_y[] = { 0x79, 0x05, 0x00, 0x00, 0x11, 0x0A, 0x04, 0x04, 0x02, 0x00 };
glx 0:f068fae80257 196 const char Letter_z[] = { 0x7A, 0x05, 0x00, 0x00, 0x1F, 0x08, 0x04, 0x02, 0x1F, 0x00 };
glx 0:f068fae80257 197
glx 0:f068fae80257 198 const char Letter_0[] = { 0x30, 0x05, 0x0E, 0x11, 0x19, 0x15, 0x13, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 199 const char Letter_1[] = { 0x31, 0x05, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00 };
glx 0:f068fae80257 200 const char Letter_2[] = { 0x32, 0x05, 0x0E, 0x11, 0x10, 0x08, 0x04, 0x02, 0x1F, 0x00 };
glx 0:f068fae80257 201 const char Letter_3[] = { 0x33, 0x05, 0x1F, 0x08, 0x04, 0x08, 0x10, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 202 const char Letter_4[] = { 0x34, 0x05, 0x08, 0x0C, 0x0A, 0x09, 0x1F, 0x08, 0x08, 0x00 };
glx 0:f068fae80257 203 const char Letter_5[] = { 0x35, 0x05, 0x1F, 0x01, 0x0F, 0x10, 0x10, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 204 const char Letter_6[] = { 0x36, 0x05, 0x0C, 0x02, 0x01, 0x0F, 0x11, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 205 const char Letter_7[] = { 0x37, 0x05, 0x1F, 0x10, 0x08, 0x04, 0x02, 0x02, 0x02, 0x00 };
glx 0:f068fae80257 206 const char Letter_8[] = { 0x38, 0x05, 0x0E, 0x11, 0x11, 0x0E, 0x11, 0x11, 0x0E, 0x00 };
glx 0:f068fae80257 207 const char Letter_9[] = { 0x39, 0x05, 0x0E, 0x11, 0x11, 0x1E, 0x10, 0x08, 0x06, 0x00 };
glx 0:f068fae80257 208
glx 0:f068fae80257 209 const char Letter_CH21[] = { 0x21, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x04, 0x00 };
glx 0:f068fae80257 210 const char Letter_CH22[] = { 0x22, 0x05, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00 };
glx 0:f068fae80257 211 const char Letter_CH23[] = { 0x23, 0x05, 0x0A, 0x0A, 0x1F, 0x0A, 0x1F, 0x0A, 0x0A, 0x00 };
glx 0:f068fae80257 212 const char Letter_CH24[] = { 0x24, 0x05, 0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04, 0x00 };
glx 0:f068fae80257 213 const char Letter_CH25[] = { 0x25, 0x05, 0x03, 0x13, 0x08, 0x04, 0x02, 0x19, 0x18, 0x00 };
glx 0:f068fae80257 214 const char Letter_CH26[] = { 0x26, 0x05, 0x06, 0x09, 0x05, 0x02, 0x15, 0x09, 0x16, 0x00 };
glx 0:f068fae80257 215 const char Letter_CH27[] = { 0x27, 0x05, 0x06, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 };
glx 0:f068fae80257 216 const char Letter_CH28[] = { 0x28, 0x05, 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08, 0x00 };
glx 0:f068fae80257 217 const char Letter_CH29[] = { 0x29, 0x05, 0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02, 0x00 };
glx 0:f068fae80257 218 const char Letter_CH2A[] = { 0x2A, 0x05, 0x00, 0x04, 0x15, 0x0E, 0x15, 0x04, 0x00, 0x00 };
glx 0:f068fae80257 219 const char Letter_CH2B[] = { 0x2B, 0x05, 0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, 0x00 };
glx 0:f068fae80257 220 const char Letter_CH2C[] = { 0x2C, 0x05, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x02, 0x00 };
glx 0:f068fae80257 221 const char Letter_CH2D[] = { 0x2D, 0x05, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00 };
glx 0:f068fae80257 222 const char Letter_CH2E[] = { 0x2E, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00 };
glx 0:f068fae80257 223 const char Letter_CH2F[] = { 0x2F, 0x05, 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 };
glx 0:f068fae80257 224
glx 0:f068fae80257 225 const char Letter_CH3A[] = { 0x3A, 0x05, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00 };
glx 0:f068fae80257 226 const char Letter_CH3B[] = { 0x3B, 0x05, 0x00, 0x06, 0x06, 0x00, 0x06, 0x04, 0x02, 0x00 };
glx 0:f068fae80257 227 const char Letter_CH3C[] = { 0x3C, 0x05, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x00 };
glx 0:f068fae80257 228 const char Letter_CH3D[] = { 0x3D, 0x05, 0x00, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x00 };
glx 0:f068fae80257 229 const char Letter_CH3E[] = { 0x3E, 0x05, 0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02, 0x00 };
glx 0:f068fae80257 230 const char Letter_CH3F[] = { 0x3F, 0x05, 0x0E, 0x11, 0x10, 0x08, 0x04, 0x00, 0x04, 0x00 };
glx 0:f068fae80257 231 const char Letter_CH40[] = { 0x40, 0x05, 0x0E, 0x11, 0x10, 0x16, 0x15, 0x15, 0x0E, 0x00 };
glx 0:f068fae80257 232
glx 0:f068fae80257 233 const char unArray[] = { 0x00, 0x05, 0x00, 0x00, 0x0A, 0x04, 0x0A, 0x00, 0x00, 0x00 };
glx 0:f068fae80257 234
glx 0:f068fae80257 235 const char Letter_Space[] = { 0x20, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
glx 0:f068fae80257 236
glx 0:f068fae80257 237
glx 0:f068fae80257 238 //char CharArray[text.size()];
glx 0:f068fae80257 239 //strncpy(CharArray, text.c_str(), sizeof(CharArray));
glx 0:f068fae80257 240 //CharArray[sizeof(CharArray) - 1] = 0;
glx 0:f068fae80257 241
glx 0:f068fae80257 242 int xOffset = 0;
glx 0:f068fae80257 243
glx 0:f068fae80257 244 for (int i = 0; i < 255; i++) {
glx 0:f068fae80257 245 char ArrayToUse[10] = { 0 };
glx 0:f068fae80257 246 char cha = CharArray[i];
glx 0:f068fae80257 247 int LetterHeigth = 8;
glx 0:f068fae80257 248 int LetterWidth;
glx 0:f068fae80257 249
glx 0:f068fae80257 250 switch (cha) { //Select char-pattern
glx 0:f068fae80257 251 case 'A':
glx 0:f068fae80257 252 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 253 ArrayToUse[i] = Letter_A[i];
glx 0:f068fae80257 254 }
glx 0:f068fae80257 255 break;
glx 0:f068fae80257 256 case 'B':
glx 0:f068fae80257 257 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 258 ArrayToUse[i] = Letter_B[i];
glx 0:f068fae80257 259 }
glx 0:f068fae80257 260 break;
glx 0:f068fae80257 261 case 'C':
glx 0:f068fae80257 262 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 263 ArrayToUse[i] = Letter_C[i];
glx 0:f068fae80257 264 }
glx 0:f068fae80257 265 break;
glx 0:f068fae80257 266 case 'D':
glx 0:f068fae80257 267 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 268 ArrayToUse[i] = Letter_D[i];
glx 0:f068fae80257 269 }
glx 0:f068fae80257 270 break;
glx 0:f068fae80257 271 case 'E':
glx 0:f068fae80257 272 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 273 ArrayToUse[i] = Letter_E[i];
glx 0:f068fae80257 274 }
glx 0:f068fae80257 275 break;
glx 0:f068fae80257 276 case 'F':
glx 0:f068fae80257 277 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 278 ArrayToUse[i] = Letter_F[i];
glx 0:f068fae80257 279 }
glx 0:f068fae80257 280 break;
glx 0:f068fae80257 281 case 'G':
glx 0:f068fae80257 282 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 283 ArrayToUse[i] = Letter_G[i];
glx 0:f068fae80257 284 }
glx 0:f068fae80257 285 break;
glx 0:f068fae80257 286 case 'H':
glx 0:f068fae80257 287 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 288 ArrayToUse[i] = Letter_H[i];
glx 0:f068fae80257 289 }
glx 0:f068fae80257 290 break;
glx 0:f068fae80257 291 case 'I':
glx 0:f068fae80257 292 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 293 ArrayToUse[i] = Letter_I[i];
glx 0:f068fae80257 294 }
glx 0:f068fae80257 295 break;
glx 0:f068fae80257 296 case 'J':
glx 0:f068fae80257 297 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 298 ArrayToUse[i] = Letter_J[i];
glx 0:f068fae80257 299 }
glx 0:f068fae80257 300 break;
glx 0:f068fae80257 301 case 'K':
glx 0:f068fae80257 302 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 303 ArrayToUse[i] = Letter_K[i];
glx 0:f068fae80257 304 }
glx 0:f068fae80257 305 break;
glx 0:f068fae80257 306 case 'L':
glx 0:f068fae80257 307 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 308 ArrayToUse[i] = Letter_L[i];
glx 0:f068fae80257 309 }
glx 0:f068fae80257 310 break;
glx 0:f068fae80257 311 case 'M':
glx 0:f068fae80257 312 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 313 ArrayToUse[i] = Letter_M[i];
glx 0:f068fae80257 314 }
glx 0:f068fae80257 315 break;
glx 0:f068fae80257 316 case 'N':
glx 0:f068fae80257 317 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 318 ArrayToUse[i] = Letter_N[i];
glx 0:f068fae80257 319 }
glx 0:f068fae80257 320 break;
glx 0:f068fae80257 321 case 'O':
glx 0:f068fae80257 322 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 323 ArrayToUse[i] = Letter_O[i];
glx 0:f068fae80257 324 }
glx 0:f068fae80257 325 break;
glx 0:f068fae80257 326 case 'P':
glx 0:f068fae80257 327 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 328 ArrayToUse[i] = Letter_P[i];
glx 0:f068fae80257 329 }
glx 0:f068fae80257 330 break;
glx 0:f068fae80257 331 case 'Q':
glx 0:f068fae80257 332 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 333 ArrayToUse[i] = Letter_Q[i];
glx 0:f068fae80257 334 }
glx 0:f068fae80257 335 break;
glx 0:f068fae80257 336 case 'R':
glx 0:f068fae80257 337 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 338 ArrayToUse[i] = Letter_R[i];
glx 0:f068fae80257 339 }
glx 0:f068fae80257 340 break;
glx 0:f068fae80257 341 case 'S':
glx 0:f068fae80257 342 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 343 ArrayToUse[i] = Letter_S[i];
glx 0:f068fae80257 344 }
glx 0:f068fae80257 345 break;
glx 0:f068fae80257 346 case 'T':
glx 0:f068fae80257 347 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 348 ArrayToUse[i] = Letter_T[i];
glx 0:f068fae80257 349 }
glx 0:f068fae80257 350 break;
glx 0:f068fae80257 351 case 'U':
glx 0:f068fae80257 352 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 353 ArrayToUse[i] = Letter_U[i];
glx 0:f068fae80257 354 }
glx 0:f068fae80257 355 break;
glx 0:f068fae80257 356 case 'V':
glx 0:f068fae80257 357 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 358 ArrayToUse[i] = Letter_V[i];
glx 0:f068fae80257 359 }
glx 0:f068fae80257 360 break;
glx 0:f068fae80257 361 case 'W':
glx 0:f068fae80257 362 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 363 ArrayToUse[i] = Letter_W[i];
glx 0:f068fae80257 364 }
glx 0:f068fae80257 365 break;
glx 0:f068fae80257 366 case 'X':
glx 0:f068fae80257 367 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 368 ArrayToUse[i] = Letter_X[i];
glx 0:f068fae80257 369 }
glx 0:f068fae80257 370 break;
glx 0:f068fae80257 371 case 'Y':
glx 0:f068fae80257 372 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 373 ArrayToUse[i] = Letter_Y[i];
glx 0:f068fae80257 374 }
glx 0:f068fae80257 375 break;
glx 0:f068fae80257 376 case 'Z':
glx 0:f068fae80257 377 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 378 ArrayToUse[i] = Letter_Z[i];
glx 0:f068fae80257 379 }
glx 0:f068fae80257 380 break;
glx 0:f068fae80257 381
glx 0:f068fae80257 382 case 'a':
glx 0:f068fae80257 383 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 384 ArrayToUse[i] = Letter_a[i];
glx 0:f068fae80257 385 }
glx 0:f068fae80257 386 break;
glx 0:f068fae80257 387 case 'b':
glx 0:f068fae80257 388 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 389 ArrayToUse[i] = Letter_b[i];
glx 0:f068fae80257 390 }
glx 0:f068fae80257 391 break;
glx 0:f068fae80257 392 case 'c':
glx 0:f068fae80257 393 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 394 ArrayToUse[i] = Letter_c[i];
glx 0:f068fae80257 395 }
glx 0:f068fae80257 396 break;
glx 0:f068fae80257 397 case 'd':
glx 0:f068fae80257 398 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 399 ArrayToUse[i] = Letter_d[i];
glx 0:f068fae80257 400 }
glx 0:f068fae80257 401 break;
glx 0:f068fae80257 402 case 'e':
glx 0:f068fae80257 403 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 404 ArrayToUse[i] = Letter_e[i];
glx 0:f068fae80257 405 }
glx 0:f068fae80257 406 break;
glx 0:f068fae80257 407 case 'f':
glx 0:f068fae80257 408 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 409 ArrayToUse[i] = Letter_f[i];
glx 0:f068fae80257 410 }
glx 0:f068fae80257 411 break;
glx 0:f068fae80257 412 case 'g':
glx 0:f068fae80257 413 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 414 ArrayToUse[i] = Letter_g[i];
glx 0:f068fae80257 415 }
glx 0:f068fae80257 416 break;
glx 0:f068fae80257 417 case 'h':
glx 0:f068fae80257 418 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 419 ArrayToUse[i] = Letter_h[i];
glx 0:f068fae80257 420 }
glx 0:f068fae80257 421 break;
glx 0:f068fae80257 422 case 'i':
glx 0:f068fae80257 423 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 424 ArrayToUse[i] = Letter_i[i];
glx 0:f068fae80257 425 }
glx 0:f068fae80257 426 break;
glx 0:f068fae80257 427 case 'j':
glx 0:f068fae80257 428 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 429 ArrayToUse[i] = Letter_j[i];
glx 0:f068fae80257 430 }
glx 0:f068fae80257 431 break;
glx 0:f068fae80257 432 case 'k':
glx 0:f068fae80257 433 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 434 ArrayToUse[i] = Letter_k[i];
glx 0:f068fae80257 435 }
glx 0:f068fae80257 436 break;
glx 0:f068fae80257 437 case 'l':
glx 0:f068fae80257 438 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 439 ArrayToUse[i] = Letter_l[i];
glx 0:f068fae80257 440 }
glx 0:f068fae80257 441 break;
glx 0:f068fae80257 442 case 'm':
glx 0:f068fae80257 443 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 444 ArrayToUse[i] = Letter_m[i];
glx 0:f068fae80257 445 }
glx 0:f068fae80257 446 break;
glx 0:f068fae80257 447 case 'n':
glx 0:f068fae80257 448 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 449 ArrayToUse[i] = Letter_n[i];
glx 0:f068fae80257 450 }
glx 0:f068fae80257 451 break;
glx 0:f068fae80257 452 case 'o':
glx 0:f068fae80257 453 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 454 ArrayToUse[i] = Letter_o[i];
glx 0:f068fae80257 455 }
glx 0:f068fae80257 456 break;
glx 0:f068fae80257 457 case 'p':
glx 0:f068fae80257 458 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 459 ArrayToUse[i] = Letter_p[i];
glx 0:f068fae80257 460 }
glx 0:f068fae80257 461 break;
glx 0:f068fae80257 462 case 'q':
glx 0:f068fae80257 463 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 464 ArrayToUse[i] = Letter_q[i];
glx 0:f068fae80257 465 }
glx 0:f068fae80257 466 break;
glx 0:f068fae80257 467 case 'r':
glx 0:f068fae80257 468 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 469 ArrayToUse[i] = Letter_r[i];
glx 0:f068fae80257 470 }
glx 0:f068fae80257 471 break;
glx 0:f068fae80257 472 case 's':
glx 0:f068fae80257 473 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 474 ArrayToUse[i] = Letter_s[i];
glx 0:f068fae80257 475 }
glx 0:f068fae80257 476 break;
glx 0:f068fae80257 477 case 't':
glx 0:f068fae80257 478 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 479 ArrayToUse[i] = Letter_t[i];
glx 0:f068fae80257 480 }
glx 0:f068fae80257 481 break;
glx 0:f068fae80257 482 case 'u':
glx 0:f068fae80257 483 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 484 ArrayToUse[i] = Letter_u[i];
glx 0:f068fae80257 485 }
glx 0:f068fae80257 486 break;
glx 0:f068fae80257 487 case 'v':
glx 0:f068fae80257 488 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 489 ArrayToUse[i] = Letter_v[i];
glx 0:f068fae80257 490 }
glx 0:f068fae80257 491 break;
glx 0:f068fae80257 492 case 'w':
glx 0:f068fae80257 493 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 494 ArrayToUse[i] = Letter_w[i];
glx 0:f068fae80257 495 }
glx 0:f068fae80257 496 break;
glx 0:f068fae80257 497 case 'x':
glx 0:f068fae80257 498 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 499 ArrayToUse[i] = Letter_x[i];
glx 0:f068fae80257 500 }
glx 0:f068fae80257 501 break;
glx 0:f068fae80257 502 case 'y':
glx 0:f068fae80257 503 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 504 ArrayToUse[i] = Letter_y[i];
glx 0:f068fae80257 505 }
glx 0:f068fae80257 506 break;
glx 0:f068fae80257 507 case 'z':
glx 0:f068fae80257 508 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 509 ArrayToUse[i] = Letter_z[i];
glx 0:f068fae80257 510 }
glx 0:f068fae80257 511 break;
glx 0:f068fae80257 512
glx 0:f068fae80257 513 case '0':
glx 0:f068fae80257 514 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 515 ArrayToUse[i] = Letter_0[i];
glx 0:f068fae80257 516 }
glx 0:f068fae80257 517 break;
glx 0:f068fae80257 518 case '1':
glx 0:f068fae80257 519 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 520 ArrayToUse[i] = Letter_1[i];
glx 0:f068fae80257 521 }
glx 0:f068fae80257 522 break;
glx 0:f068fae80257 523 case '2':
glx 0:f068fae80257 524 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 525 ArrayToUse[i] = Letter_2[i];
glx 0:f068fae80257 526 }
glx 0:f068fae80257 527 break;
glx 0:f068fae80257 528 case '3':
glx 0:f068fae80257 529 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 530 ArrayToUse[i] = Letter_3[i];
glx 0:f068fae80257 531 }
glx 0:f068fae80257 532 break;
glx 0:f068fae80257 533 case '4':
glx 0:f068fae80257 534 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 535 ArrayToUse[i] = Letter_4[i];
glx 0:f068fae80257 536 }
glx 0:f068fae80257 537 break;
glx 0:f068fae80257 538 case '5':
glx 0:f068fae80257 539 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 540 ArrayToUse[i] = Letter_5[i];
glx 0:f068fae80257 541 }
glx 0:f068fae80257 542 break;
glx 0:f068fae80257 543 case '6':
glx 0:f068fae80257 544 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 545 ArrayToUse[i] = Letter_6[i];
glx 0:f068fae80257 546 }
glx 0:f068fae80257 547 break;
glx 0:f068fae80257 548 case '7':
glx 0:f068fae80257 549 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 550 ArrayToUse[i] = Letter_7[i];
glx 0:f068fae80257 551 }
glx 0:f068fae80257 552 break;
glx 0:f068fae80257 553 case '8':
glx 0:f068fae80257 554 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 555 ArrayToUse[i] = Letter_8[i];
glx 0:f068fae80257 556 }
glx 0:f068fae80257 557 break;
glx 0:f068fae80257 558 case '9':
glx 0:f068fae80257 559 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 560 ArrayToUse[i] = Letter_9[i];
glx 0:f068fae80257 561 }
glx 0:f068fae80257 562 break;
glx 0:f068fae80257 563
glx 0:f068fae80257 564 case '!':
glx 0:f068fae80257 565 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 566 ArrayToUse[i] = Letter_CH21[i];
glx 0:f068fae80257 567 }
glx 0:f068fae80257 568 break;
glx 0:f068fae80257 569 case '"':
glx 0:f068fae80257 570 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 571 ArrayToUse[i] = Letter_CH22[i];
glx 0:f068fae80257 572 }
glx 0:f068fae80257 573 break;
glx 0:f068fae80257 574 case '#':
glx 0:f068fae80257 575 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 576 ArrayToUse[i] = Letter_CH23[i];
glx 0:f068fae80257 577 }
glx 0:f068fae80257 578 break;
glx 0:f068fae80257 579 case '$':
glx 0:f068fae80257 580 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 581 ArrayToUse[i] = Letter_CH24[i];
glx 0:f068fae80257 582 }
glx 0:f068fae80257 583 break;
glx 0:f068fae80257 584 case '%':
glx 0:f068fae80257 585 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 586 ArrayToUse[i] = Letter_CH25[i];
glx 0:f068fae80257 587 }
glx 0:f068fae80257 588 break;
glx 0:f068fae80257 589 case '&':
glx 0:f068fae80257 590 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 591 ArrayToUse[i] = Letter_CH26[i];
glx 0:f068fae80257 592 }
glx 0:f068fae80257 593 break;
glx 0:f068fae80257 594 case '\'':
glx 0:f068fae80257 595 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 596 ArrayToUse[i] = Letter_CH27[i];
glx 0:f068fae80257 597 }
glx 0:f068fae80257 598 break;
glx 0:f068fae80257 599 case '(':
glx 0:f068fae80257 600 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 601 ArrayToUse[i] = Letter_CH28[i];
glx 0:f068fae80257 602 }
glx 0:f068fae80257 603 break;
glx 0:f068fae80257 604 case ')':
glx 0:f068fae80257 605 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 606 ArrayToUse[i] = Letter_CH29[i];
glx 0:f068fae80257 607 }
glx 0:f068fae80257 608 break;
glx 0:f068fae80257 609 case '*':
glx 0:f068fae80257 610 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 611 ArrayToUse[i] = Letter_CH2A[i];
glx 0:f068fae80257 612 }
glx 0:f068fae80257 613 break;
glx 0:f068fae80257 614 case '+':
glx 0:f068fae80257 615 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 616 ArrayToUse[i] = Letter_CH2B[i];
glx 0:f068fae80257 617 }
glx 0:f068fae80257 618 break;
glx 0:f068fae80257 619 case ',':
glx 0:f068fae80257 620 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 621 ArrayToUse[i] = Letter_CH2C[i];
glx 0:f068fae80257 622 }
glx 0:f068fae80257 623 break;
glx 0:f068fae80257 624 case '-':
glx 0:f068fae80257 625 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 626 ArrayToUse[i] = Letter_CH2D[i];
glx 0:f068fae80257 627 }
glx 0:f068fae80257 628 break;
glx 0:f068fae80257 629 case '.':
glx 0:f068fae80257 630 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 631 ArrayToUse[i] = Letter_CH2E[i];
glx 0:f068fae80257 632 }
glx 0:f068fae80257 633 break;
glx 0:f068fae80257 634 case '/':
glx 0:f068fae80257 635 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 636 ArrayToUse[i] = Letter_CH2F[i];
glx 0:f068fae80257 637 }
glx 0:f068fae80257 638 break;
glx 0:f068fae80257 639
glx 0:f068fae80257 640 case ':':
glx 0:f068fae80257 641 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 642 ArrayToUse[i] = Letter_CH3A[i];
glx 0:f068fae80257 643 }
glx 0:f068fae80257 644 break;
glx 0:f068fae80257 645 case ';':
glx 0:f068fae80257 646 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 647 ArrayToUse[i] = Letter_CH3B[i];
glx 0:f068fae80257 648 }
glx 0:f068fae80257 649 break;
glx 0:f068fae80257 650 case '<':
glx 0:f068fae80257 651 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 652 ArrayToUse[i] = Letter_CH3C[i];
glx 0:f068fae80257 653 }
glx 0:f068fae80257 654 break;
glx 0:f068fae80257 655 case '=':
glx 0:f068fae80257 656 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 657 ArrayToUse[i] = Letter_CH3D[i];
glx 0:f068fae80257 658 }
glx 0:f068fae80257 659 break;
glx 0:f068fae80257 660 case '>':
glx 0:f068fae80257 661 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 662 ArrayToUse[i] = Letter_CH3E[i];
glx 0:f068fae80257 663 }
glx 0:f068fae80257 664 break;
glx 0:f068fae80257 665 case '?':
glx 0:f068fae80257 666 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 667 ArrayToUse[i] = Letter_CH3F[i];
glx 0:f068fae80257 668 }
glx 0:f068fae80257 669 break;
glx 0:f068fae80257 670 case '@':
glx 0:f068fae80257 671 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 672 ArrayToUse[i] = Letter_CH40[i];
glx 0:f068fae80257 673 }
glx 0:f068fae80257 674 break;
glx 0:f068fae80257 675
glx 0:f068fae80257 676 case ' ':
glx 0:f068fae80257 677 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 678 ArrayToUse[i] = Letter_Space[i];
glx 0:f068fae80257 679 }
glx 0:f068fae80257 680 break;
glx 0:f068fae80257 681
glx 0:f068fae80257 682 case '\0': //if the end of string char is found, end function
glx 0:f068fae80257 683 return;
glx 0:f068fae80257 684
glx 0:f068fae80257 685
glx 0:f068fae80257 686 default:
glx 0:f068fae80257 687 for(int i = 0; i < 10; i++) {
glx 0:f068fae80257 688 ArrayToUse[i] = unArray[i];
glx 0:f068fae80257 689 }
glx 0:f068fae80257 690 break;
glx 0:f068fae80257 691 }
glx 0:f068fae80257 692 // ASCII Width 1stR 2ndR 3rdR 4thR 5thR 6thR 7thR 8thR
glx 0:f068fae80257 693 // Letter_A = { 0x41, 0x05, 0x0E, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x00 }
glx 0:f068fae80257 694 LetterWidth = ArrayToUse[1];
glx 0:f068fae80257 695
glx 0:f068fae80257 696 if (UseLargeFont) {
glx 0:f068fae80257 697 for (int LetterRow = 0; LetterRow < sizeof ArrayToUse - 2; LetterRow++) {
glx 0:f068fae80257 698 if (((ArrayToUse[LetterRow + 2] & Bit0) == Bit0) && LetterWidth > 0) {
glx 4:5d6f6e0191b8 699 DrawPixel(x + xOffset + 0, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 700 DrawPixel(x + xOffset + 1, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 701 DrawPixel(x + xOffset + 0, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 702 DrawPixel(x + xOffset + 1, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 703 }
glx 0:f068fae80257 704 if (((ArrayToUse[LetterRow + 2] & Bit1) == Bit1) && LetterWidth > 1) {
glx 4:5d6f6e0191b8 705 DrawPixel(x + xOffset + 2, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 706 DrawPixel(x + xOffset + 3, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 707 DrawPixel(x + xOffset + 2, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 708 DrawPixel(x + xOffset + 3, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 709 }
glx 0:f068fae80257 710 if (((ArrayToUse[LetterRow + 2] & Bit2) == Bit2) && LetterWidth > 2) {
glx 4:5d6f6e0191b8 711 DrawPixel(x + xOffset + 4, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 712 DrawPixel(x + xOffset + 5, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 713 DrawPixel(x + xOffset + 4, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 714 DrawPixel(x + xOffset + 5, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 715 }
glx 0:f068fae80257 716 if (((ArrayToUse[LetterRow + 2] & Bit3) == Bit3) && LetterWidth > 3) {
glx 4:5d6f6e0191b8 717 DrawPixel(x + xOffset + 6, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 718 DrawPixel(x + xOffset + 7, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 719 DrawPixel(x + xOffset + 6, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 720 DrawPixel(x + xOffset + 7, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 721 }
glx 0:f068fae80257 722 if (((ArrayToUse[LetterRow + 2] & Bit4) == Bit4) && LetterWidth > 4) {
glx 4:5d6f6e0191b8 723 DrawPixel(x + xOffset + 8, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 724 DrawPixel(x + xOffset + 9, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 725 DrawPixel(x + xOffset + 8, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 726 DrawPixel(x + xOffset + 9, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 727 }
glx 0:f068fae80257 728 if (((ArrayToUse[LetterRow + 2] & Bit5) == Bit5) && LetterWidth > 5) {
glx 4:5d6f6e0191b8 729 DrawPixel(x + xOffset + 10, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 730 DrawPixel(x + xOffset + 11, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 731 DrawPixel(x + xOffset + 10, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 732 DrawPixel(x + xOffset + 11, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 733 }
glx 0:f068fae80257 734 if (((ArrayToUse[LetterRow + 2] & Bit6) == Bit6) && LetterWidth > 6) {
glx 4:5d6f6e0191b8 735 DrawPixel(x + xOffset + 12, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 736 DrawPixel(x + xOffset + 13, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 737 DrawPixel(x + xOffset + 12, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 738 DrawPixel(x + xOffset + 13, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 739 }
glx 0:f068fae80257 740 if (((ArrayToUse[LetterRow + 2] & Bit7) == Bit7) && LetterWidth > 7) {
glx 4:5d6f6e0191b8 741 DrawPixel(x + xOffset + 14, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 742 DrawPixel(x + xOffset + 15, y + (LetterRow * 2) + 1);
glx 4:5d6f6e0191b8 743 DrawPixel(x + xOffset + 14, y + (LetterRow * 2) + 0);
glx 4:5d6f6e0191b8 744 DrawPixel(x + xOffset + 15, y + (LetterRow * 2) + 0);
glx 0:f068fae80257 745 }
glx 0:f068fae80257 746 }
glx 0:f068fae80257 747
glx 0:f068fae80257 748 xOffset += (LetterWidth * 2) + 1;
glx 0:f068fae80257 749 }
glx 0:f068fae80257 750
glx 0:f068fae80257 751 else {
glx 0:f068fae80257 752 for (int LetterRow = 2; LetterRow < sizeof ArrayToUse; LetterRow++) {
glx 0:f068fae80257 753 if (((ArrayToUse[LetterRow] & Bit0) == Bit0) && LetterWidth > 0)
glx 4:5d6f6e0191b8 754 DrawPixel(x + xOffset + 0, y + LetterRow - 2);
glx 0:f068fae80257 755 if (((ArrayToUse[LetterRow] & Bit1) == Bit1) && LetterWidth > 1)
glx 4:5d6f6e0191b8 756 DrawPixel(x + xOffset + 1, y + LetterRow - 2);
glx 0:f068fae80257 757 if (((ArrayToUse[LetterRow] & Bit2) == Bit2) && LetterWidth > 2)
glx 4:5d6f6e0191b8 758 DrawPixel(x + xOffset + 2, y + LetterRow - 2);
glx 0:f068fae80257 759 if (((ArrayToUse[LetterRow] & Bit3) == Bit3) && LetterWidth > 3)
glx 4:5d6f6e0191b8 760 DrawPixel(x + xOffset + 3, y + LetterRow - 2);
glx 0:f068fae80257 761 if (((ArrayToUse[LetterRow] & Bit4) == Bit4) && LetterWidth > 4)
glx 4:5d6f6e0191b8 762 DrawPixel(x + xOffset + 4, y + LetterRow - 2);
glx 0:f068fae80257 763 if (((ArrayToUse[LetterRow] & Bit5) == Bit5) && LetterWidth > 5)
glx 4:5d6f6e0191b8 764 DrawPixel(x + xOffset + 5, y + LetterRow - 2);
glx 0:f068fae80257 765 if (((ArrayToUse[LetterRow] & Bit6) == Bit6) && LetterWidth > 6)
glx 4:5d6f6e0191b8 766 DrawPixel(x + xOffset + 6, y + LetterRow - 2);
glx 0:f068fae80257 767 if (((ArrayToUse[LetterRow] & Bit7) == Bit7) && LetterWidth > 7)
glx 4:5d6f6e0191b8 768 DrawPixel(x + xOffset + 7, y + LetterRow - 2);
glx 0:f068fae80257 769 }
glx 0:f068fae80257 770
glx 0:f068fae80257 771 xOffset += LetterWidth + 1;
glx 0:f068fae80257 772 }
glx 0:f068fae80257 773 }
glx 0:f068fae80257 774
glx 0:f068fae80257 775 }
glx 0:f068fae80257 776
glx 4:5d6f6e0191b8 777 void TinyBitmap::ClearScreen()
glx 0:f068fae80257 778 {
glx 0:f068fae80257 779 int size = (_IMAGEWIDTH * _IMAGEHEIGHT / 8) + _COMMANDBYTES;
glx 0:f068fae80257 780
glx 0:f068fae80257 781 for (int i = _COMMANDBYTES; i < size; i++) {
glx 4:5d6f6e0191b8 782 _FRAMEBUFFER[i] = 0x00;
glx 0:f068fae80257 783 }
glx 0:f068fae80257 784 }
glx 0:f068fae80257 785