

	myLCD
v0.20.3 build 14052006

An LCD framebuffer library
   Michael McElligott
okio@users.sourceforge.net


myLCD is a modular multi-platform framebuffer API framework library primarily catering for
embedded LCD controllers, which may easily extended to other devices.
myLCD contains an API's for drawing, plotting, printing text, scaling, rotating, copying,
moving, loading and saving of images and frames and scrolling of images/frames & text too.
With two proportional font engines, supporting ASCII and wide character font sets,
enabling the support of non-ASCII character sets such as traditional and simplifed Chinese.


There isn't anything in the way of documentation but viewing mylcd.h and the examples
should give you enough to get started.
In the mean time here follows a quick 'it'll-get-you-started' lesson.


// only one header to include.
#include "mylcd.h" // this will also include 'mylcdtypes.h'

int main ()
{
    // open myLCD library on port 0x378, set LCD width and Height
    THWD *hw = lOpen(lcdWidth,lcdHeight,1,0x378);

    // create a 128x64 frame (sometimes referred to as a 'surface')
    // frame size is unrelated to hardware.
    TFRAME *frame = lNewFrame (hw,128,64);
    
    // print something on the top left corner of the frame(x=0,y=0)
    lPrint (frame, "hello world", 0, 0, LFT_SMALLFONTS7X7, LPRT_CPY);
    
    // print myLCD version using formatted print.
    // print to column 1:row 30, ie; x,y = 1,30
    lPrintf (frame, 1,30, LFT_COMICSANSMS7X8, LPRT_CPY, "%s", (ubyte*)lVersion());
    
    // update lcd with the contents of frame
    lRefresh (frame);
    
    // delete frame and free it resources
    lDeleteFrame (frame);
    
    // shutdown myLCD
    lClose(hw);
}



Port drivers:
I recommend for Win32 that the WinIO port driver is used if IO performance if a major factor.
Openparport for one less external file dependency, slower than WinIO and is reported to be
non functioning under WinXP.
DLPortIO,  DriverLINX Port I/O Driver Interface.
Serial driver has not been tested on an actual LCD device.
The serial driver for the LEDCard which is similar to the above driver, could also be used.

Display drivers: 
PSP: is the Sony PlayStation driver.
SDL: is an SDL based virtual display driver which is supported under both Win32 and linux.
DDRAW: is a virtual display driver, a directdraw window replacing the LCD.
  Virtual displays are quite useful for developing when one may not actually have an LCD at hand.
  This means it may also be used as the primary output device, check winamp.c for more details.
PCD8544: An LCD controller found in many of the monochrome LCD's from Nokia phones.
SED1565: Untested, but should be fine.
KS0108 (HD61203): Need anything more be said about this popular LCD controller.


Port driver benchmarking with a PCD8544 (84x48, 3310) using plasma.c :
  Winio		opp		DLPortIO
  206		157		204		fps with back buffer on
  101.5		75.8		101.2		fps with back buffer off

Please mail myself with your experience with either of these port or display drivers.

-------

Copyright (c) 2005-2006  Michael McElligott
 
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

