• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Drivers
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Fredrik Öhrn - 2006-03-11
Last edited by Andrew Mahone - 2009-08-13

FS#4817 - Remove duplicated scrolling code in the LCD drivers.

This patch merges the scrolling code from all the bitmap LCD drivers (except the H100 remote) into a single file.
The copyright notice needs to be fixed, I was unable to figure out from whom the scrolling code actually originated.

The task blocks this from closing
ID Project Summary Priority Severity Assigned To Progress
10461 Rockbox FS#10461 - Support for custom drawing of styled/scrolled text in plugins. Very Low Low
Closed by  Andrew Mahone
2009-08-13 08:05
Reason for closing:  Accepted
Additional comments about closing:  

Committed as r22289.

pillo commented on 2006-03-11 18:08

It seems you forgot to include in the patch the scrolling.c file you just created. This is probably because you used “cvs diff” on a tree with non-yet-added cvs files (see first line of your .diff ;-)

Fredrik Öhrn commented on 2006-03-11 18:23

Doh! I spent ages fighting with cvs over that misfeature and then I manage to upload the wrong file.
Here’s the correct diff with scrolling.c included.

Fredrik Öhrn commented on 2006-03-13 09:45

OK, I managed to leave some junk in a function declaration. Here’s a new patch.

Jonathan Gordon commented on 2007-07-31 13:26

quick attempt to merge the bits of the lcd drivers which wernt done last week.
untested because stupid gcc complains about no sysfont.h with this, hopefully someone else has more luck

Peter D'Hoye commented on 2007-08-02 21:14


Jonathan Gordon commented on 2007-08-11 14:56

forgot about this one…

something causes sysfont.h to not be created…

Barry Wardell commented on 2007-08-11 15:29

The problem isn’t really with sysfont.h. The problem is your change in firmware/SOURCES. The added line should be ‘drivers/lcd-generic.c’. For some reason, whenever a file from SOURCES doesn’t exist, we get an error about sysont.h not being created instead of an error about the missing file.

I made the change to firmware/SOURCES, but there are a load of errors in compiling lcd-generic.c so I didn’t go any further with testing it.

Edit: I’ve opened a task for the sysfont.h problem and added it as a related task here.

Jonathan Gordon commented on 2007-08-12 00:38

doh, thanks Barry.

here is a partial sync.. it now compiles fine on 16 bit non-lcd-remote targets.. if this is wanted the rest of the lcd targets can be fixed up also

Andrew Mahone commented on 2009-07-18 10:23

This is more of a rewrite than a resync, moving pretty much all of the text drawing code into a new lcd-bitmap-common.c, merging the styled text draw code used by puts_style_offset and puts_scroll_style_offset, and merging lcd_gradient_rect and lcd_gradient_rect_scroll. There are binsize savings on the order of 500-600B on color targets, with smaller or no improvement on greyscale targets. I also have a version in a branch which avoids including lcd-bitmap-common.c, but this is more invasive (because the viewports must be made non-static, and therefore must have unique names between main and remote) and causes binsize increase on some targets compared to this version (probably because of long calls).
EDIT: new diff, previous one missed the new file

Andrew Mahone commented on 2009-07-24 04:49

Updated, mostly just line-length fixes


Available keyboard shortcuts


Task Details

Task Editing