Subversion Repositories libOLED

Rev

Rev 3 | Rev 5 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3 Rev 4
Line 7... Line 7...
7
#include "libOLED/fontclass.H"
7
#include "libOLED/fontclass.H"
8
 
8
 
9
char
9
char
10
font5x7_t::getPixel (char c, int x, int y)
10
font5x7_t::getPixel (char c, int x, int y)
11
{
11
{
12
  if (x<0 || x>m_width)
12
  if (x < 0 || x >= m_width)
13
    return 0;
13
    return 0;
14
  if (y<0 || y>m_height)
14
  if (y < 0 || y >= m_height)
15
    return 0;
15
    return 0;
16
  unsigned char  pixels = 0;
16
  uint8_t pixels = 0;
17
  if (c < ' ')
17
  if (c < ' ')
18
    c = ' ';
18
    c = ' ';
19
  if (c >= ' ' && c <= 0x7f)
19
  if (c >= ' ' && c <= 0x7f)
20
    pixels = m_data[(c - ' ') * m_width + x];
20
    pixels = m_data[(c - ' ') * m_width + x];
21
  if (c == '°')
21
  if (c == '°')
22
    pixels = m_data[0x80 * m_width + x];
22
    pixels = m_data[0x80 * m_width + x];
23
 
23
 
24
  char v=  (pixels >> y) & 1;
24
  char v = (pixels >> y) & 1;
25
 return v;
25
  return v;
26
}
26
}
27
 
27
 
28
char
28
char
29
font10x18_t::getPixel (char c, int x, int y)
29
font10x18_t::getPixel (char c, int x, int y)
30
{
30
{
31
  if (x<0 || x>m_width)
31
  if (x < 0 || x >= m_width)
32
    return 0;
32
    return 0;
33
  if (y<0 || y>m_height)
33
  if (y < 0 || y >= m_height)
34
    return 0;
34
    return 0;
35
 
35
 
36
  c = c & 0x7F;
36
  c = c & 0x7F;
37
  if (c < ' ')
37
  if (c < ' ')
38
    c = ' ';
38
    c = ' ';
-
 
39
  if (c >= m_chars)
-
 
40
    c = ' ';
39
 
41
 
40
  int xm = x + (c - 32) * m_width;
42
  int xm = x + (c - 32) * m_width;
41
 
-
 
-
 
43
  int index = (y * m_width * m_chars + xm) / 8;
42
   return ((m_data[(y * m_width) / 8 + (xm / 8)]) >> (xm & 7)) & 1;
44
  return ((m_data[index]) >> (xm & 7)) & 1;
43
 
45
 
44
}
46
}
45
 
47
 
46
static const char font5x7_data[] =
48
static const char font5x7_data[] =
47
  { 0x00, 0x00, 0x00, 0x00, 0x00,   //   0x20 32
49
  { 0x00, 0x00, 0x00, 0x00, 0x00,   //   0x20 32
Line 141... Line 143...
141
      0x08, 0x0c, 0x08, 0x18, 0x08,   // ~ 0x7e 126
143
      0x08, 0x0c, 0x08, 0x18, 0x08,   // ~ 0x7e 126
142
      0x55, 0x2A, 0x55, 0x2A, 0x55,   //  0x7F 127
144
      0x55, 0x2A, 0x55, 0x2A, 0x55,   //  0x7F 127
143
      0x00, 0x06, 0x09, 0x06, 0x00, // 0x80 (remapped in code) a ° sign
145
      0x00, 0x06, 0x09, 0x06, 0x00, // 0x80 (remapped in code) a ° sign
144
146
145
147
146
-
 
147
148
148
149
149
150
150
151
151
152
Line 324... Line 325...
324
325
325
326
326
327
327
328
328
329
329
-
 
330
330
331
331
332
332