Skip to content

Commit 4c68a7a

Browse files
committed
the QwGrBufferDevice(x,y,w,h) constructor wasnt calling the default constructor causing a crash when object not a stack variable; formatter updates
1 parent 923f7a6 commit 4c68a7a

File tree

1 file changed

+81
-44
lines changed

1 file changed

+81
-44
lines changed

src/qwiic_grbuffer.h

Lines changed: 81 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656
#include "res/qwiic_resdef.h"
5757

5858
// RECT!
59-
struct QwRect {
59+
struct QwRect
60+
{
6061
uint16_t x;
6162
uint16_t y;
6263
uint16_t width;
@@ -90,40 +91,62 @@ extern const uint8_t byte_bits[8];
9091
//
9192
// Seperated out to enable easy vtable access and method dispatch short circuiting
9293

93-
class _QwIDraw {
94+
class _QwIDraw
95+
{
9496

9597
// 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
97101

98102
// 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+
}
102112

103113
// 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+
}
106120

107121
// 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+
}
110128

111129
// 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+
}
114134

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+
}
116138
};
117139

118140
// 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);
124146

125147
// Define the vtable struct for IDraw
126-
struct _QwIDraw_vtable {
148+
struct _QwIDraw_vtable
149+
{
127150
QwDrawPntFn drawPixel;
128151
QwDrawTwoPntFn drawLine;
129152
QwDrawTwoPntFn drawLineHorz;
@@ -142,15 +165,14 @@ struct _QwIDraw_vtable {
142165
// Buffer class - defines basics for a memory buffer drawing class. Note it subclasses
143166
// from QwIDraw
144167

145-
class QwGrBufferDevice : protected _QwIDraw {
168+
class QwGrBufferDevice : protected _QwIDraw
169+
{
146170

147-
public:
171+
public:
148172
// 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()
154176
{
155177
setViewport(x0, y0, width, height);
156178
};
@@ -164,23 +186,38 @@ class QwGrBufferDevice : protected _QwIDraw {
164186
m_viewport.height = height;
165187
};
166188

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+
};
172209

173210
// Lifecycle
174211
virtual bool init(void);
175212

176213
// Font methods
177214
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);
181218

182219
// 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);
184221

185222
// Public Interface - Graphics interface
186223
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 {
193230
void rectangle(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr = 1);
194231
void rectangleFill(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t clr = 1);
195232

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);
198235

199236
// 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);
201238

202239
// 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);
204241

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);
206243

207244
// subclass interface
208245
virtual void display(void) = 0;
209246
virtual void erase(void) = 0;
210247

211-
protected:
248+
protected:
212249
QwRect m_viewport;
213250

214251
// Internal, fast draw routines - These implement QwIDraw
@@ -230,14 +267,14 @@ class QwGrBufferDevice : protected _QwIDraw {
230267
virtual void drawCircleFilled(uint8_t x0, uint8_t y0, uint8_t radius, uint8_t clr);
231268

232269
// 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);
234271

235272
// Our drawing interface - open to sub-classes ...
236273
_QwIDraw_vtable m_idraw;
237274

238275
// Current Font
239-
QwFont* m_currentFont;
276+
QwFont *m_currentFont;
240277

241-
private:
278+
private:
242279
bool initDrawFunctions(void);
243280
};

0 commit comments

Comments
 (0)