Unallocated framebuffer fix.
This commit is contained in:
@@ -175,6 +175,12 @@ CFontz_init (lcd_logical_driver * driver, char *args)
|
||||
// Do it...
|
||||
tcsetattr (fd, TCSANOW, &portset);
|
||||
|
||||
// Make sure the frame buffer is there...
|
||||
if (!CFontz->framebuf)
|
||||
CFontz->framebuf = (unsigned char *)
|
||||
malloc (CFontz->wid * CFontz->hgt);
|
||||
memset (CFontz->framebuf, ' ', CFontz->wid * CFontz->hgt);
|
||||
|
||||
// Set display-specific stuff..
|
||||
if (reboot) {
|
||||
CFontz_reboot ();
|
||||
|
||||
@@ -387,7 +387,6 @@ MtxOrb_init (lcd_logical_driver * driver, char *args)
|
||||
malloc (MtxOrb->wid * MtxOrb->hgt);
|
||||
memset (MtxOrb->framebuf, ' ', MtxOrb->wid * MtxOrb->hgt);
|
||||
|
||||
|
||||
// Allocate and clear the buffer for incremental updates
|
||||
lcd_contents = (unsigned char *) malloc (MtxOrb->wid * MtxOrb->hgt);
|
||||
if (!lcd_contents) { return -1; }
|
||||
|
||||
+14
-2
@@ -185,6 +185,12 @@ int LB216_init(lcd_logical_driver *driver, char *args)
|
||||
tcsetattr(fd, TCSANOW, &portset);
|
||||
|
||||
|
||||
// Make sure the frame buffer is there...
|
||||
if (!LB216->framebuf)
|
||||
LB216->framebuf = (unsigned char *)
|
||||
malloc (LB216->wid * LB216->hgt);
|
||||
memset (LB216->framebuf, ' ', LB216->wid * LB216->hgt);
|
||||
|
||||
// Set display-specific stuff..
|
||||
if(reboot)
|
||||
{
|
||||
@@ -268,8 +274,14 @@ void LB216_chr(int x, int y, char c)
|
||||
|
||||
//if(c < 32 && c >= 0) c += 128;
|
||||
// LB216->framebuf[(y*LB216->wid) + x] = c;
|
||||
char chr[1];
|
||||
snprintf (chr, sizeof(chr), "%c", c);
|
||||
|
||||
// char chr[1];
|
||||
// snprintf (chr, sizeof(chr), "%c", c);
|
||||
// Above two lines are incorrect (Joris)
|
||||
|
||||
char chr[2];
|
||||
chr[0] = c;
|
||||
chr[1] = 0;
|
||||
LB216_string (x, y, chr);
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,15 @@ text_init (lcd_logical_driver * driver, char *args)
|
||||
{
|
||||
text = driver;
|
||||
|
||||
// Make sure the frame buffer is there...
|
||||
if (!text->framebuf)
|
||||
text->framebuf = (unsigned char *)
|
||||
malloc (text->wid * text->hgt);
|
||||
memset (text->framebuf, ' ', text->wid * text->hgt);
|
||||
|
||||
|
||||
// Set the functions the driver supports
|
||||
|
||||
text->wid = LCD_DEFAULT_WIDTH;
|
||||
text->hgt = LCD_DEFAULT_HEIGHT;
|
||||
text->cellwid = LCD_DEFAULT_CELL_WIDTH;
|
||||
|
||||
Reference in New Issue
Block a user