Color Graphic display driver library packages for RGB and Grey-level display controllers.

Be up and running with your graphic display application using advanced features, such as text string and character output, soft-font handling, graphic drawing, and graphic symbol output, in just a few hours. Save weeks of hard programming.


Color GUI display driver library package overview

Graphic-User-Interface (GUI) feature overview

  • GUI library support for RGB and Grey-level display controllers
  • Common GUI feature set and interface to application. Promotes application source code reuse across GUI projects
  • Library is supplied as C source code.
  • Common high-level function interface
  • Library is designed for use with embedded processors. Small memory footprint.
  • Can operate directly on internal video buffer in the display controller chip. No need for a graphic video buffer in processor RAM.
  • Portable and C-compiler-independent source code with standardized I/O functions.
  • Character and text string functions.
  • Color text and graphic symbols.
  • Support for anti-aliased fonts
  • Support for transparent text
  • Tabs and column alignment support.
  • Viewports with scroll, auto-wrap and auto-alignment.
  • Switching between multiple viewports.
  • Graphic line drawing and pixel setting.
  • Graphic Rectangle and Block drawing.
  • Graphic buffer Cut and Paste.
  • Selectable foreground and background colors with both text and graphics.
  • Soft-font support.
  • Mono-space and Proportional fonts.
  • Support for extended character sets. Multibyte character strings, wide-char strings.
  • Support for extended codepage tables, ISO-IEC 10646, and UNICODE.
  • Full UTF-8 support, incl. conversion functions.
  • Free user definition of special symbols.
  • Transparent symbol pixels. Symbols can use any geometric form.
  • Fonts can be stored as two-color (B&W) symbols to optimize memory consumption.
  • Rotation of text and graphic symbols
  • Fast block-swapping of foreground and background colors. Ideal for block cursors in menus and progress bars.
  • Touch screen support
  • Full support for Virtual Fonts, icons, and pictures stored in external memory devices.
  • Full support for Virtual Files, text and appl. data stored in external memory devices.
  • Color LCD / TFT / OLED PC-simulator included for debugging of target applications with standard PC compilers.
  • Comprehensive easy-to-read manual with examples.
  • No run-time licenses.

Description

GUI Function Interface

The powerful and flexible function interface provides the basic drawing features that make it simple for a programmer to create screen data fields, pull-down menus, pop-up menus, progress bars, etc. The library facilitates the creation of the GUI "style" and "look" most suitable for a particular target application area.

The library functions are well modularized. Advanced features can be added successively to the basic GUI driver system. For instance: graphic support, symbol and icon support, soft-font text support, and viewport support. This makes it easy to adapt the library to the requirements of your application.

Easy text handling and GUI "look" management

Multiple viewports with wrap and scroll. This makes it easy to reserve areas on the display for icons and to prevent overwriting. Within a viewport, text can be output as left or right-aligned, cut at the edges, or centered horizontally and vertically. Each viewport can have its own font, codepage, color, and output styling.
Automatic text scrolling can be done individually for each viewport. This makes it easy reserve areas on the display for icons, and to prevent overwriting.
Viewports can be "styled" individually and are allowed to overlap. This makes it easy to mix styling on an area.

Transparent support for graphical multicolor icons, semi-transparent symbols, and for black & white (two-color) symbols. A foreground / background color scheme is used for two-color symbols. This makes it particularly easy to handle colors in connection with text and line drawing, and when converting an existing program from a black-and-white LCD to a color LCD.

The library function set facilitates the design of run-time adaptable GUI layouts. Promotes the design of reusable GUI API features, automatic screen sizes adaption, etc.

Text, Fonts, International language support

The library supports soft fonts for both mono-space and proportional graphic text. All font handling is done transparently by the library. The programmer just selects the required font and output a text string.

Font support for 8-bit character sets, extended 16-bit character sets, national ASCII character sets, ISO-IEC 10646, and UNICODE. Supports dynamic codepage look-up and segmented fonts. This makes it possible to reduce a large font so that it only contains those character symbols used by the application, while the C text strings remain unchanged. Ideal for memory-constrained embedded systems.

Low RAM and ROM memory consumption

The libraries are designed for small embedded processor systems, and optimized low memory consumption and low run-time overhead.

Large soft-fonts, large graphic symbols, and similar memory consuming constant objects, can be located in external memory devices. Data is fetched directly in the order needed when rendering. No RAM load buffers needed. See Virtual Fonts for details.

Display controller PC Simulation

Start GUI programming and testing before your hardware is ready. The PC-mode display controller simulator for Windows supplied with all library packages allows you to program and logically test embedded GUI applications using common PC compilers from, for instance, Borland and Microsoft. Your application source code looks the same in PC-mode and target mode.

Processor-independent C source code

The libraries are written entirely in C using standardized function syntax for basic low-level I/O read and write operations. The library is supplied as C source code and can therefore be compiled with C, C++ or EC++ standard conforming compilers.

Targets all common embedded processor families, from small 8-bit processor to embedded PCs. For instance: 80x51, 80x86, PIC17, PIC18, PIC24, PIC32, dsPIC, AVR, AT9x, ARM, etc.

Create portable GUI applications

The library function set facilitates the design of run-time adaptable GUI layouts. Promotes the design of reusable GUI API features, automatic screen size adaption, etc.

The same GUI driver function interface is used for different display controller types. Changing to display modules using another display controller type is now a simple task. This makes it easier to create portable and reusable application software.

Function overview.  (Common for RGB-color and Grey-level libraries)

Basic initialization and error handling

ginit Initialize display module
ghw_puterr Initialize display and output an error message at the center of the display
gexit Release display resources
gsetupdate Activate / deactivate delayed update
ghw_err Report error status from hardware drivers
ghw_dispoff Turn off display screen
ghw_dispon Turn on display screen
ghw_cont_set Set LCD contrast level (absolute)
ghw_cont_change Change LCD contrast level (relative)

Basic text functions

gputs Print a string.
The string can be an (UTF-8) multibyte encoded string.
gputch Print a character
gputcsym Print a symbol as a character
gputsrot Print a string rotated in any direction.
The string can be an (UTF-8) multibyte encoded string.
gputchrot Print a character in any rotated orientation
ggetcxpos Report cursor x position in character coordinates
ggetcypos Report cursor y position in character coordinates
gsetcpos Set cursor position in character coordinates
gsetpos Set cursor position in graphic coordinates
gsetcursor Set cursor size and type
ggetfw Default width of current font
ggetfh Height of current font
gfgetfw Default width of a named font
gfgetfh Height of a named font
ggetmbc Fetch a char or a multibyte character from a string. The string pointer is advanced to the following character
gstrlines Report number of text lines in a multi-line string
gsetspch Set text character spacing. Add extra pixel space between text string characters
ggetspch Report text character spacing
gsetspln Set text line spacing. Add extra pixel space between text lines
ggetspln Report text line spacing

Basic graphic functions

gcarc Draw corner arcs as a full circle, half circle, or quarter circle. Draw as perimeter, as filled area, or both.
gcircle Draw a circle as perimeter or as filled area. Any perimeter fragment using any radius can be drawn. Center may be located outside screen.
gsetpixel
gcsetpixel
Write a logical pixel using current viewport color settings or a specific color.
ggetpixel
gcgetpixel
Read a pixel as a logical value or as a color.
grectangle
gcrectangle
Draw a rectangular box using the current viewport color settings or a specific color.
groundrec Draw a rectangle with rounded corners. Create any figure from a pure rectangle to a circle. Draw as perimeter, as filled area, or both.
gmoveto Set start position for line draw
glineto Draw a line from last position to new position
ggetxpos Report current pixel x position
ggetypos Report current pixel y position
ghw_rdblk Read display area to buffer
ghw_restoreblk Write the display area stored in the buffer back to the same position as it was read by ghw_rdblk
ghw_wrblk Write buffer to display area
ghw_blksize Calculate needed buffer size for read block

Symbol (icon)

gputfsym Output a graphic color or B&W symbol from a font
gputsym Output a graphic color or B&W symbol
gputsymrot Output a graphic color or B&W symbol using any rotation direction. Rotation anchor can be outside symbol or screen, creating a pendulous effect.
ggetsym Read display area as a symbol in the current color mode
gfillfsym Fill area with a color or B&W symbol from a font
gfillsym Fill area with a color or B&W symbol
gsymsize Calculate minimum buffer size to hold a symbol in the current color mode
ggetsymw Get the pixel width of a character symbol using the current font
gsymh Report pixel height of symbol
gsymw Report pixel width of symbol

Viewport functions

ggetvp Report graphic viewport size
gsetvp Set graphic viewport size
ggetvpnum Report viewport number
gsetcvp Set character viewport size
gsetupvp Initialize all viewport parameters
ggetvpw Report current viewport width
ggetvph Report current viewport height
gselvp Select viewport to be current
gfillvp Fill rectangular area in viewport
ginvertvp Invert rectangular area in viewport
gresetvp Reset viewport to default
gresetposvp Reset viewport coordinates to full screen. Leave font and text mode setting unchanged
gclrvp Clear viewport
gsetmode Set normal, inverse, and alignment modes
gscrollcvp Scroll character viewport
gvpxl Report left edge coordinate for viewport
gvpxr Report right edge coordinate for viewport
gvpyb Report bottom edge coordinate for viewport
gvpyt Report top edge coordinate for viewport
ggetapp Get pointer to application-specific data for viewport
ggetvpapp Translate application-specific data pointer to viewport number
ggetcolorb Report background color for viewport.
ggetcolorf Report foreground color for viewport.
gsetcolorb Set background color for viewport.
gsetcolorf Set foreground color for viewport.
ghw_palette_wr Write in a new color palette.
ghw_palette_rd Read out current color palette.

Tabulator functions in viewports

gsettab Set a tab position
gsettabs Set tab spacing
gclrtabs Clear tab(s)

Soft-font functions

gfgetcp Report codepage for a named font
ggetfont Report font for the current viewport
gselfont Select current font for viewport
ggetcp Report current codepage for viewport
gselcp Set current codepage for viewport
gpstrheight Report height in pixels of a multi-line string based on the current font
gpstrlen Report string length in pixels with current font
gpstrheight Report width in pixels of the longest line in a multi-line string based on the current font
gpwordlen Length in pixels of first word in string with current font
gcursorblink Cursor blink function

Display multi-screen functions

gscinit Initialize a newly allocated screen buffer and make it the owner of the resources.
gscisowner Check whether a screen buffer is the current owner
gscsize Calculate required size for screen buffer allocation
gscsave Save the complete screen and library settings in screen buffer
gscrestore Swap to another screen. Restore screen and library settings from screen buffer and make it the current owner

Wide-char text functions

(Require wide-char support from compiler)
gpstrheightw Report height in pixels of a multi-line wide-char string based on the current font
gpstrlenw Report length in pixels of a wide-char string based on the current font
gpstrheightw Report width in pixels of the longest line in a multi-line wide-char string based on the current font
gpwordlenw Length in pixels of first word in wide-char string with current font
gputchw Print an extended character (wide-char or multibyte character)
gputchwrot Print an extended character in any rotated orientation
gputsw Print a wide-char string
gputswrot Print a wide-char string rotated in any direction.

multibyte-char text functions

(UTF-8 or compressed multibyte)
gwcmbsize Report number of multibyte characters needed to hold a wide character value
gmstrlen Report multibyte length of string in number of bytes (storage length)
gmstrlenw Report multibyte string length needed to hold wide-char string (storage length)
gmsstrlen Report logical symbol length of multibyte string (= corresponding size of wide-char string)
ggetmbc Convert multibyte to wide character
gwctomb Convert wide char to multibyte
gwstrcpymb Copy and convert wide-char string to multibyte string
gmbstrcpyw Copy and convert multibyte string to wide-char string

The GUI application interface for color and grey-level display controllers is upward compatible with the GUI application interface for Black & White display controllers. Creates a secure migration path when moving an application from using a B&W display to using a color display.