Those are all fair points! The library is in its early stages, so the priority has been to get things working before making everything 'nice'. Some of the points are easier to fix than others; e.g the pixel format will be a more drastic change, but is worth doing for the long run.
Implementation specific include files included in the high level code
I see two solutions to this: split lld by directory like chibios has, and add to the inc path according to the selected driver, or have a common lld_inc.h that isn't included in glcd.h but rather in library files that need to access the lld.
Assumes a particular pixel format that is implementation specific (in particular RGB565)
I guess we define a new type pixel_t or something, that would be uint16_t for the current drivers. Then each device can provide some inline functions to abstract conversions.
Types such as "orientation" are defined but not used in function prototypes
pretty obvious fix for this one - use them everywhere
Assumes that all functions defined will actually be needed in any project ie. There is no way defined to turn off code (and data) not used eg. Character generation and font tables
definitely an area to work on, but should be easy enough to have some defines to turn off/on each feature.
Does not allow for low level code to hardware accelerate functions (eg string functions, circle drawing)
good idea, we could have macros or weakly defined functions (is that supported by more than gcc?) to allow a lld to overrule a high level function
Does not allow for threading and messaging to be turned off for simple applications or where they are not supported by the platform efficiently.
that is easily done, and I was thinking the same for applications in which the multithread was not needed. I will add this mode tonight.
Mixes high level code with drawing support algorithms which may or may not be needed by an application or low level driver
I guess this is an area that is harder to get right, to know what should be low or high level; can you describe in more detail what you think should be done?
If you have code to submit, easiest way is to use github, fork the main repo and then do a pull request.
what platform / lcd / driver are you using?