You are here: Home > Products > GUI Products
GUI Products

The PEG family of products are designed for embedded systems. PEG+ and PEG Pro are the full-featured versions that support windowing on full size screens and C++. C/PEG is the reduced version with C API and lower cost, intended mainly for 1/4 VGA screens or smaller. PRESS, a derivative product, offers client/server operation for multiprocess and multiprocessor applications and remote control.


C/PEG is a portable, ROMable software library for generating graphical output on embedded systems. C/PEG is written in ANSI C, and does not require a C++ compiler. C/PEG is limited in scope as compared to PEG, and it is targeted at those applications and products that utilize a smaller LCD screen with limited color depth.

C/PEG is intended primarily for displays in the QVGA (320x240) pixel resolution range, or smaller. There is no support for overlapped windows, with the visible portion of the background continuously updating. C/PEG applications typically use a simple scheme, where each screen takes up the entire display. These are called panels rather than windows. Panels are neither moveable nor sizeable by the user, and they do not provide objects such as scroll bars and titles. These can be done in C/PEG, but they must be implemented with user code in the client area. Multiple panels can appear on the screen simultaneously, but C/PEG does not provide the complicated view-port algorithms in PEG that allow an object to draw only that part of itself that is visible on the screen.

Because of its very small footprint (60K code space typical) C/PEG can be used on targets with small ROM/flash resources, or even in DOS real-mode applications. C/PEG is also a good fit for 8- and 16-bit microcontrollers.

C/PEG is good for applications with small screens, low to medium resolution, small color depth, gray scale, or monochrome, single window per screen, and/or where C is preferred. More...

Want more information?


PEG+ has a small footprint, high performance, and event-driven programming model, which make it perfect for today's multi-threaded embedded applications using LCD and video displays and controllers. PEG+ offers a C++ class library consisting of over 80 object types, and it comes with drivers for a large number of video and LCD controllers. It has been ported to a large number of processors, and is easily portable to other hardware.

PEG+ has an event driven model that supports many types of input devices, such as mice, keyboards, touch screens, buttons, and soft buttons. Detected movement or touch of one of these is an event that can be channeled to a waiting task. Multiple tasks can control windows and display objects within windows simultaneously. PRESS, a companion product extends PEG+ to multiprocess (e.g. Linux) or multiprocessor applications. See description, below.

PEG+ includes a set of development tools that make the job of creating a user interface much easier. WindowBuilder is a drag and drop utility that creates source code automatically. The FontCapture utility allows capturing standard (e.g. TrueType) or custom fonts and converting them to compressed bitmaps that are linked with the application code and save memory space. The ImageConvert utility does the same for images. These tools greatly reduce development time and permit creating professional-quality GUIs for embedded products.

PEG+ is good for applications with medium to large screens, medium to high resolutions, medium to full color depth, a need for multiple on-screen windows, and/or where C++ is preferred. It can be used to generate user interfaces that are comparable to desktop computers. More...

Want more information?


PEG Pro enables the design of sophisticated embedded graphics by supporting the key features and advanced applications demanded by interactive devices such as navigation systems, cell phones, gaming systems and medical electronics.

PEG Pro accelerates product delivery by providing robust functionality such as drag-and-drop visual development tools and the ability to begin development on a Windows or Linux platform. Key features include unlimited graphics layers, per-pixel and per-layer alpha blending, bitmap rotation and scaling, screen transitions, text rotation and complete anti-aliasing of all drawing primitives. In addition, PEG Pro provides run-time selection of themes to allow end-users to tailor their experience. PEG Pro supports a wide range of color depths up to 32 bits per pixel (bpp).

Want more information?


The PRESS (PEG Remote Screen Server) execution model extends PEG to muliprocess and multiprocessor environments. In these environments, GUI tasks or processes may not have direct access to display and user input hardware. To deal with this, PRESS offers a client/server model. The following methods of communication between client and server processes are currently supported:

  • BSD sockets
  • INET sockets
  • Unix sockets
  • Named pipes
  • Integrity connections

When using PRESS, a PEG server runs on a CPU that is connected to a user interface. It runs as a stand-alone process and waits for drawing commands, in the form of drawing messages, to arrive from client processes via any of the above communication methods. The PEG server interprets drawing messages and does the required screen drawing. It also monitors user inputs and generates input event messages, which are sent to client processes. Client processes may reside on the same machine or on different machines, in the same or different locations.

Ordinarily, there is one PEG server per system. It consists of the PRESS server software, a screen driver, input device drivers, and a small subset of the PEG class library. A PEG client application is built just like a normal PEG application, except that it uses the PRESS version of the PEG library. Instead of drawing directly on the screen, this version composes drawing messages and sends them to the PEG server. This version also receives user input event messages from the PEG server and presents them to the application as normal input events.

PRESS not only solves the problem of supporting isolated-multiprocess OSs, such as Linux, but it also offers the ability to control and monitor multiple headless embedded units that are located locally or remotely.

A PEG client can register a font or bitmap with a PEG server. The PEG server returns an integer, which can be used to identify the font or bitmap, in subsequent drawing messages. This greatly reduces the communication channel bandwidth needed by PRESS versus alternative remote display technologies such as HTML. As a consequence PRESS can be used over low bandwidth channels, such as USB, CAN, and SPI, as well as Ethernet.

PRESS is good for multiprocess OSs, multiprocessor systems, and local or remote user interfaces over low bandwidth channels.

Want more information?

To learn more about PEG GUI products see:

  1. C/PEG Datasheet
  2. PEG+ Datasheet
  3. PEG Pro Datasheet
  4. C/PEG vs. PEG+ (PDF)
  5. PRESS Technical Overview (PDF)
  6. PEG Demos
  7. Evaluation Kits

Register now for more information and to be contacted by a product expert. Registration also enables us to mail you printed literature and is necessary to qualify for a free evaluation kit.



  Register now for more info.
C/PEG Features

  • Designed specifically for embedded systems
  • Same powerful development tools as PEG, except they generate C code
  • Very small footprint – 100K code, 4K stack, 16K RAM for full-featured GUI
  • Completely ROMable
  • Full C source code included
  • Fast – interacts directly with video and input hardware
  • Advanced color reduction, dithering and optimal palette production can be applied to assist those running on grayscale, monochrome or limited palette targets.
  • Rotated screen mounting is seamlessly supported.
  • Supports popular target processors, video controllers, and I/O devices
  • Easy to port to new hardware. Screen driver templates included.
  • Event-driven programming model – familiar to Windows developers
  • Use PC to design GUI before target hardware is ready
  • Low cost and royalty free
  • Ported to SMX®
  • Runs stand-alone, or easily portable to other RTOSs
PEG+ Features

  • Designed specifically for embedded systems
  • Powerful development tools
  • Small footprint – 170K code, 4K stack, 16K RAM for full-featured GUI
  • Completely ROMable
  • Full C++ source code included
  • Extensive library of GUI objects
  • Viewports and overlapped top-level windows.
  • 64K colors and higher
  • Automatic horizontal and vertical scrolling of client areas.
  • ZIP and UNZIP run-time compression/decompression
  • BMP, GIF, JPEG, and PNG run-time image decoders.
  • Charting widgets
  • HMI widget set
  • Docking MenuBar, ToolBar, StatusBar
  • Spreadsheet control
  • HTML table style control
  • Run-time string resource installation (i.e. loadable language modules)
  • UNICODE support
  • Fast – interacts directly with video and input hardware
  • Supports popular target processors, video controllers, and I/O devices
  • Easy to port to new hardware. Screen driver templates included
  • Event-driven programming model – familiar to Windows developers
  • Use PC to design GUI before target hardware is ready
  • Low cost and royalty free
  • Ported to SMX®
  • Runs stand-alone, or easily portable to other RTOSs
PEG Pro Features

  • All features of PEG+
  • Small footprint – 240K code, 8K stack, 32K RAM for full-featured GUI
  • Support for multiple hardware graphics layers
  • True anti-alias line and font drawing
  • Per-pixel alpha-blending
  • Run-time “theme” support
  • Screen transition effects – slide-in, wipe, fade
  • Complete multi-language support, including UNICODE