ePaper_EXT3_Basic_Library Reference Manual  501
Library for Pervasive Displays EXT3 - Basic level
hV_Screen_Buffer.h
Go to the documentation of this file.
1 
25 // SDK
26 #if defined(ENERGIA) // LaunchPad specific
27 #include "Energia.h"
28 #else // Arduino general
29 #include "Arduino.h"
30 #endif // end IDE
31 
32 #ifndef hV_SCREEN_BUFFER_RELEASE
33 #define hV_SCREEN_BUFFER_RELEASE 507
37 
38 #include "hV_Configuration.h"
39 
40 // Other libraries
41 #include "hV_Colours565.h"
42 #include "hV_Utilities.h"
43 
44 #if (FONT_MODE == USE_FONT_TERMINAL)
45 #include "hV_Font_Terminal.h"
46 
47 #else
48 #error FONT_MODE not defined
49 #endif // FONT_MODE
50 
54 #warning USE_hV_SCREEN == USE_hV_SCREEN_SELF
55 #warning FONT_MODE == USE_FONT_TERMINAL
57 {
58  public:
63 
66 
70  virtual void begin();
71 
76  virtual String WhoAmI() = 0; // compulsory
77 
82  virtual void clear(uint16_t colour = myColours.black);
83 
87  virtual void flush() = 0; // compulsory
88 
99  virtual void setOrientation(uint8_t orientation);
100 
109  uint8_t getOrientation();
110 
116  virtual uint16_t screenSizeX();
117 
123  virtual uint16_t screenSizeY();
124 
130  virtual uint16_t screenDiagonal();
132 
139  virtual uint8_t screenColourBits();
140 
142 
146 
156  virtual void circle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t colour);
157 
168  virtual void line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour);
169 
180  virtual void dLine(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour);
181 
186  virtual void setPenSolid(bool flag = true);
187 
201  virtual void triangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, uint16_t colour);
202 
213  virtual void rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour);
214 
225  virtual void dRectangle(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour);
226 
235  virtual void point(uint16_t x1, uint16_t y1, uint16_t colour);
236 
238 
241 
246  virtual void selectFont(uint8_t font);
247 
252  virtual uint8_t getFont();
253 
261  virtual uint8_t addFont(font_s fontName);
262 
267  virtual void setFontSolid(bool flag = true);
268 
273  virtual void setFontSpaceX(uint8_t number = 1);
274 
279  virtual void setFontSpaceY(uint8_t number = 1);
280 
291  virtual uint16_t characterSizeX(uint8_t character = 0x00);
292 
299  virtual uint16_t characterSizeY();
300 
307  virtual uint16_t stringSizeX(String text);
308 
316  virtual uint8_t stringLengthToFitX(String text, uint16_t pixels);
317 
324  virtual uint8_t fontMax();
325 
337  virtual void gText(uint16_t x0, uint16_t y0,
338  String text,
339  uint16_t textColour = myColours.black,
340  uint16_t backColour = myColours.white);
342 
343  protected:
346  // * Virtual =0 compulsory functions
347  // Orientation
352  virtual void _setOrientation(uint8_t orientation) = 0; // compulsory
353 
360  virtual bool _orientCoordinates(uint16_t & x1, uint16_t & y1) = 0; // compulsory
361 
362  // Position
370  virtual void _setPoint(uint16_t x1, uint16_t y1, uint16_t colour) = 0; // compulsory
371 
372  // Write and Read
373 
374  // Other functions
375  // required by triangle()
386  void _triangleArea(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, uint16_t colour);
387 
388  // required by gText()
395  uint8_t _getCharacter(uint8_t character, uint8_t index);
396 
397  // Variables provided by hV_Screen_Virtual
398  bool _penSolid;
399  uint16_t _screenWidth, _screenHeigth, _screenDiagonal;
400  uint8_t _orientation;
401  uint16_t _screenColourBits;
403 };
404 
405 #endif // hV_SCREEN_BUFFER_RELEASE
virtual void rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour)
Draw rectangle, rectangle coordinates.
Definition: hV_Screen_Buffer.cpp:302
virtual void setFontSpaceY(uint8_t number=1)
Set additional spaces between two characters, vertical axis.
Definition: hV_Screen_Buffer.cpp:570
virtual uint16_t stringSizeX(String text)
String size, x-axis.
Definition: hV_Screen_Buffer.cpp:555
Class for font as header file.
Definition: hV_Font_Terminal.h:82
static const uint16_t white
white
Definition: hV_Colours565.h:54
virtual uint16_t characterSizeY()
Character size, y-axis.
Definition: hV_Screen_Buffer.cpp:550
virtual void gText(uint16_t x0, uint16_t y0, String text, uint16_t textColour=myColours.black, uint16_t backColour=myColours.white)
Draw ASCII Text (pixel coordinates) with selection of size.
Definition: hV_Screen_Buffer.cpp:580
virtual void clear(uint16_t colour=myColours.black)
Clear the screen.
Definition: hV_Screen_Buffer.cpp:35
virtual void selectFont(uint8_t font)
Select font number.
Definition: hV_Screen_Buffer.cpp:520
virtual void triangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, uint16_t colour)
Draw triangle, rectangle coordinates.
Definition: hV_Screen_Buffer.cpp:436
Class Library for 5-6-5 coded colours.
Utilities.
virtual uint8_t fontMax()
Number of fonts.
Definition: hV_Screen_Buffer.cpp:530
virtual void flush()=0
Send frame-buffer to display.
Definition: hV_Screen_Buffer.cpp:46
virtual String WhoAmI()=0
Request information about the screen.
Structure for font.
Definition: hV_Font.h:90
virtual uint8_t getFont()
Get font number.
Definition: hV_Screen_Buffer.cpp:525
virtual void begin()
Initialisation.
Definition: hV_Screen_Buffer.cpp:30
virtual void dRectangle(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour)
Draw rectangle, vector coordinates.
Definition: hV_Screen_Buffer.cpp:331
virtual void setFontSolid(bool flag=true)
Set transparent or opaque text.
Definition: hV_Screen_Buffer.cpp:510
hV_Font_Terminal
virtual uint16_t screenSizeX()
Screen size, x-axis.
Definition: hV_Screen_Buffer.cpp:90
uint8_t getOrientation()
Get orientation.
Definition: hV_Screen_Buffer.cpp:85
virtual uint8_t stringLengthToFitX(String text, uint16_t pixels)
Number of characters to fit a size, x-axis.
Definition: hV_Screen_Buffer.cpp:560
Configuration of the options for Pervasive Displays Library Suite.
hV_Screen_Buffer()
Constructor.
Definition: hV_Screen_Buffer.cpp:21
virtual uint8_t screenColourBits()
Screen colour depth.
Definition: hV_Screen_Buffer.cpp:135
Generic class for buffered LCD.
Definition: hV_Screen_Buffer.h:56
virtual void circle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t colour)
Draw circle.
Definition: hV_Screen_Buffer.cpp:140
virtual void point(uint16_t x1, uint16_t y1, uint16_t colour)
Draw pixel.
Definition: hV_Screen_Buffer.cpp:297
virtual void setFontSpaceX(uint8_t number=1)
Set additional spaces between two characters, horizontal axis.
Definition: hV_Screen_Buffer.cpp:565
virtual uint16_t screenDiagonal()
Screen size, diagonal.
Definition: hV_Screen_Buffer.cpp:130
hV_Colours565 myColours
Instantiated object.
Definition: hV_Colours565.cpp:25
virtual void dLine(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour)
Draw line, vector coordinates.
Definition: hV_Screen_Buffer.cpp:204
virtual uint16_t screenSizeY()
Screen size, y-axis.
Definition: hV_Screen_Buffer.cpp:110
virtual uint16_t characterSizeX(uint8_t character=0x00)
Character size, x-axis.
Definition: hV_Screen_Buffer.cpp:535
static const uint16_t black
black
Definition: hV_Colours565.h:53
virtual void setOrientation(uint8_t orientation)
Set orientation.
Definition: hV_Screen_Buffer.cpp:51
virtual void setPenSolid(bool flag=true)
Set pen opaque.
Definition: hV_Screen_Buffer.cpp:292
virtual uint8_t addFont(font_s fontName)
Add a font.
Definition: hV_Screen_Buffer.cpp:515
virtual void line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour)
Draw line, rectangle coordinates.
Definition: hV_Screen_Buffer.cpp:209