Subversion Repositories libOLED

Rev

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

Rev 3 Rev 4
Line 1... Line 1...
1
// font class library
1
// font class library
2
#pragma once
2
#pragma once
-
 
3
#include <cstdint>
3
 
4
 
4
class font_t
5
class font_t
5
{
6
{
6
public:
7
public:
-
 
8
  /// \param height - pixel character height
-
 
9
  /// \param width  - pixel character width
-
 
10
  /// \param spacing - character to character spacing
-
 
11
  /// \param chars  - number of characters in character set
-
 
12
  /// \param data - constant data
7
  font_t (int const height, int const width, char const * data) :
13
  font_t (uint8_t const height, uint8_t const width,
-
 
14
          uint8_t const spacing, uint8_t const chars,
-
 
15
          char const *data) :
8
      m_height (height), m_width (width), m_data(data)
16
      m_height (height), m_width (width), m_spacing (spacing), m_chars (chars), m_data (
-
 
17
          data)
9
  {
18
  {
10
  }
19
  }
11
 
20
 
12
  virtual char
21
  virtual char
13
  getPixel (char c, int x, int y) =0 ;
22
  getPixel (char c, int x, int y) =0;
14
 
23
 
15
  // character width
24
  // character width
16
  int
25
  uint8_t
17
  width ()
26
  width ()
18
  {
27
  {
19
    return m_width;
28
    return m_width;
20
  }
29
  }
21
 
30
 
22
  // character height
31
  // character height
23
  int
32
  uint8_t
24
  height ()
33
  height ()
25
  {
34
  {
26
    return m_height;
35
    return m_height;
27
  }
36
  }
28
 
37
 
-
 
38
  uint8_t
-
 
39
  chars ()
-
 
40
  {
-
 
41
    return m_chars;
-
 
42
  }
-
 
43
 
-
 
44
  uint8_t
-
 
45
  spacing ()
-
 
46
  {
-
 
47
    return m_spacing;
-
 
48
  }
29
protected:
49
protected:
30
  int const m_height;
50
  uint8_t const m_height;
31
  int const m_width;
51
  uint8_t const m_width;
-
 
52
  uint8_t const m_spacing;
-
 
53
  uint8_t const m_chars;
32
  char const *m_data;
54
  char const *m_data;
33
};
55
};
34
 
56
 
35
class font5x7_t : public font_t
57
class font5x7_t : public font_t
36
{
58
{
37
public:
59
public:
38
  font5x7_t (char const *data) :
60
  font5x7_t (char const *data) :
39
      font_t (7, 5, data)
61
      font_t (7, 5, 6, 96, data)
40
  {
62
  {
41
  }
63
  }
42
  ;
64
  ;
43
 
65
 
44
 char
66
  char
45
  getPixel (char c, int x, int y) override;
67
  getPixel (char c, int x, int y) override;
46
 
68
 
47
};
69
};
48
 
70
 
49
class font10x18_t : public font_t
71
class font10x18_t : public font_t
50
{
72
{
51
public:
73
public:
52
  font10x18_t (char const *data) :
74
  font10x18_t (char const *data) :
53
      font_t (18, 10,data)
75
      font_t (18, 10, 10, 96, data)
54
  {
76
  {
55
  }
77
  }
56
  ;
78
  ;
57
 
79
 
58
  char
80
  char