56
56
#include " res/qwiic_resdef.h"
57
57
58
58
// RECT!
59
- struct QwRect {
59
+ struct QwRect
60
+ {
60
61
uint16_t x;
61
62
uint16_t y;
62
63
uint16_t width;
@@ -90,40 +91,62 @@ extern const uint8_t byte_bits[8];
90
91
//
91
92
// Seperated out to enable easy vtable access and method dispatch short circuiting
92
93
93
- class _QwIDraw {
94
+ class _QwIDraw
95
+ {
94
96
95
97
// Pixel Methods
96
- virtual void drawPixel (uint8_t x, uint8_t y, uint8_t clr) { } // A subclass must implement this
98
+ virtual void drawPixel (uint8_t x, uint8_t y, uint8_t clr)
99
+ {
100
+ } // A subclass must implement this
97
101
98
102
// Line Methods
99
- virtual void drawLine (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr) { }
100
- virtual void drawLineHorz (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr) { }
101
- virtual void drawLineVert (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr) { }
103
+ virtual void drawLine (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr)
104
+ {
105
+ }
106
+ virtual void drawLineHorz (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr)
107
+ {
108
+ }
109
+ virtual void drawLineVert (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr)
110
+ {
111
+ }
102
112
103
113
// Rectangles
104
- virtual void drawRect (uint8_t x0, uint8_t y0, uint8_t width, uint8_t height, uint8_t clr) { }
105
- virtual void drawRectFilled (uint8_t x0, uint8_t y0, uint8_t width, uint8_t height, uint8_t clr) { }
114
+ virtual void drawRect (uint8_t x0, uint8_t y0, uint8_t width, uint8_t height, uint8_t clr)
115
+ {
116
+ }
117
+ virtual void drawRectFilled (uint8_t x0, uint8_t y0, uint8_t width, uint8_t height, uint8_t clr)
118
+ {
119
+ }
106
120
107
121
// Circles
108
- virtual void drawCircle (uint8_t x0, uint8_t y0, uint8_t radius, uint8_t clr) { }
109
- virtual void drawCircleFilled (uint8_t x0, uint8_t y0, uint8_t radius, uint8_t clr) { }
122
+ virtual void drawCircle (uint8_t x0, uint8_t y0, uint8_t radius, uint8_t clr)
123
+ {
124
+ }
125
+ virtual void drawCircleFilled (uint8_t x0, uint8_t y0, uint8_t radius, uint8_t clr)
126
+ {
127
+ }
110
128
111
129
// Bitmaps
112
- virtual void drawBitmap (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1,
113
- uint8_t * pBitmap, uint8_t bmp_width, uint8_t bmp_height) { }
130
+ virtual void drawBitmap (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t *pBitmap, uint8_t bmp_width,
131
+ uint8_t bmp_height)
132
+ {
133
+ }
114
134
115
- virtual void drawText (uint8_t x0, uint8_t y0, const char * text, uint8_t clr) { }
135
+ virtual void drawText (uint8_t x0, uint8_t y0, const char *text, uint8_t clr)
136
+ {
137
+ }
116
138
};
117
139
118
140
// Drawing fuction typedefs
119
- typedef void (*QwDrawPntFn)(void *, uint8_t , uint8_t , uint8_t );
120
- typedef void (*QwDrawTwoPntFn)(void *, uint8_t , uint8_t , uint8_t , uint8_t , uint8_t );
121
- typedef void (*QwDrawCircleFn)(void *, uint8_t , uint8_t , uint8_t , uint8_t );
122
- typedef void (*QwDrawBitmapFn)(void *, uint8_t , uint8_t , uint8_t , uint8_t , uint8_t *, uint8_t , uint8_t );
123
- typedef void (*QwDrawTextFn)(void *, uint8_t , uint8_t , const char *, uint8_t );
141
+ typedef void (*QwDrawPntFn)(void *, uint8_t , uint8_t , uint8_t );
142
+ typedef void (*QwDrawTwoPntFn)(void *, uint8_t , uint8_t , uint8_t , uint8_t , uint8_t );
143
+ typedef void (*QwDrawCircleFn)(void *, uint8_t , uint8_t , uint8_t , uint8_t );
144
+ typedef void (*QwDrawBitmapFn)(void *, uint8_t , uint8_t , uint8_t , uint8_t , uint8_t *, uint8_t , uint8_t );
145
+ typedef void (*QwDrawTextFn)(void *, uint8_t , uint8_t , const char *, uint8_t );
124
146
125
147
// Define the vtable struct for IDraw
126
- struct _QwIDraw_vtable {
148
+ struct _QwIDraw_vtable
149
+ {
127
150
QwDrawPntFn drawPixel;
128
151
QwDrawTwoPntFn drawLine;
129
152
QwDrawTwoPntFn drawLineHorz;
@@ -142,15 +165,14 @@ struct _QwIDraw_vtable {
142
165
// Buffer class - defines basics for a memory buffer drawing class. Note it subclasses
143
166
// from QwIDraw
144
167
145
- class QwGrBufferDevice : protected _QwIDraw {
168
+ class QwGrBufferDevice : protected _QwIDraw
169
+ {
146
170
147
- public:
171
+ public:
148
172
// Constructors
149
- QwGrBufferDevice ()
150
- : m_currentFont { nullptr } {};
151
- QwGrBufferDevice (uint8_t width, uint8_t height)
152
- : QwGrBufferDevice(0 , 0 , width, height) {};
153
- QwGrBufferDevice (uint8_t x0, uint8_t y0, uint8_t width, uint8_t height)
173
+ QwGrBufferDevice () : m_currentFont{nullptr } {};
174
+ QwGrBufferDevice (uint8_t width, uint8_t height) : QwGrBufferDevice(0 , 0 , width, height){};
175
+ QwGrBufferDevice (uint8_t x0, uint8_t y0, uint8_t width, uint8_t height) : QwGrBufferDevice()
154
176
{
155
177
setViewport (x0, y0, width, height);
156
178
};
@@ -164,23 +186,38 @@ class QwGrBufferDevice : protected _QwIDraw {
164
186
m_viewport.height = height;
165
187
};
166
188
167
- QwRect viewport (void ) { return m_viewport; };
168
- uint16_t originX (void ) { return m_viewport.x ; };
169
- uint16_t originY (void ) { return m_viewport.y ; };
170
- uint16_t width (void ) { return m_viewport.width ; };
171
- uint16_t height (void ) { return m_viewport.height ; };
189
+ QwRect viewport (void )
190
+ {
191
+ return m_viewport;
192
+ };
193
+ uint16_t originX (void )
194
+ {
195
+ return m_viewport.x ;
196
+ };
197
+ uint16_t originY (void )
198
+ {
199
+ return m_viewport.y ;
200
+ };
201
+ uint16_t width (void )
202
+ {
203
+ return m_viewport.width ;
204
+ };
205
+ uint16_t height (void )
206
+ {
207
+ return m_viewport.height ;
208
+ };
172
209
173
210
// Lifecycle
174
211
virtual bool init (void );
175
212
176
213
// Font methods
177
214
void initFont (void );
178
- void setFont (QwFont& font);
179
- void setFont (const QwFont* font);
180
- QwFont* font (void );
215
+ void setFont (QwFont & font);
216
+ void setFont (const QwFont * font);
217
+ QwFont * font (void );
181
218
182
219
// Returns the size of a string - in pixels - using current font
183
- bool getStringSize (const char * text, uint16_t & width, uint16_t & height);
220
+ bool getStringSize (const char * text, uint16_t & width, uint16_t & height);
184
221
185
222
// Public Interface - Graphics interface
186
223
void line (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr = 1 );
@@ -193,22 +230,22 @@ class QwGrBufferDevice : protected _QwIDraw {
193
230
void rectangle (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr = 1 );
194
231
void rectangleFill (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr = 1 );
195
232
196
- void bitmap (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1,
197
- uint8_t * pBitmap, uint8_t bmp_width, uint8_t bmp_height);
233
+ void bitmap (uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t *pBitmap, uint8_t bmp_width,
234
+ uint8_t bmp_height);
198
235
199
236
// draw full bitmap
200
- void bitmap (uint8_t x0, uint8_t y0, uint8_t * pBitmap, uint8_t bmp_width, uint8_t bmp_height);
237
+ void bitmap (uint8_t x0, uint8_t y0, uint8_t * pBitmap, uint8_t bmp_width, uint8_t bmp_height);
201
238
202
239
// Bitmap draw - using a bitmap object
203
- void bitmap (uint8_t x0, uint8_t y0, QwBitmap& bitmap);
240
+ void bitmap (uint8_t x0, uint8_t y0, QwBitmap & bitmap);
204
241
205
- void text (uint8_t x0, uint8_t y0, const char * text, uint8_t clr = 1 );
242
+ void text (uint8_t x0, uint8_t y0, const char * text, uint8_t clr = 1 );
206
243
207
244
// subclass interface
208
245
virtual void display (void ) = 0;
209
246
virtual void erase (void ) = 0;
210
247
211
- protected:
248
+ protected:
212
249
QwRect m_viewport;
213
250
214
251
// Internal, fast draw routines - These implement QwIDraw
@@ -230,14 +267,14 @@ class QwGrBufferDevice : protected _QwIDraw {
230
267
virtual void drawCircleFilled (uint8_t x0, uint8_t y0, uint8_t radius, uint8_t clr);
231
268
232
269
// Text
233
- virtual void drawText (uint8_t x0, uint8_t y0, const char * text, uint8_t clr);
270
+ virtual void drawText (uint8_t x0, uint8_t y0, const char * text, uint8_t clr);
234
271
235
272
// Our drawing interface - open to sub-classes ...
236
273
_QwIDraw_vtable m_idraw;
237
274
238
275
// Current Font
239
- QwFont* m_currentFont;
276
+ QwFont * m_currentFont;
240
277
241
- private:
278
+ private:
242
279
bool initDrawFunctions (void );
243
280
};
0 commit comments