|
PegX Video OutputOverview
PegX is designed work with and take full advantage a broad range of video output devices and display screens. PegX can be configured for monochrome, 4 grays, 16 grays, 16 colors, 256 colors, 65535 colors, and true 24-bit RGB color output. Further, the output color depth may be defined at compile time (producing the smallest code) or at run time (allowing the video output device to be determined during system initialization). A full range of VGA and LCD display devices are supported, including LCD devices of unique x-y resolutions or orientations. The design of the PegX display drivers enables common resolutions such as 640x480 VGA or 320x240 LCD screens to be handled in an identical manner as very unique or very small x-y pixel resolutions. All PegX screen interface operations are performed by a library class named PegScreen. This class defines the drawing primitives and other operations that are available in every PegX system, regardless of display type or video controller in use. Specific derived versions of PegScreen are then provided for each color depth, resolution, and video controller. Hardware AccelerationPegX takes full advantage of video controllers which support hardware acceleration capabilities such as hardware cursor or hardware bit-blit. These capabilities are always provided in the display driver software, via software emulation when the target controller does not provide a specific feature directly in hardware. When hardware acceleration is available, a small set of functions in the display driver are reduced to take advantage of the video hardware acceleration. Double-BufferingDouble-buffered video output is optionally supported in every PegX configuration. This configuration allows all intermediate drawing operations to be performed to an off-screen or local memory buffer. At the conclusion of a drawing operation, the invalidated region of the local memory buffer is transferred to the visible video memory, using hardware bit-blitting if provided. This mode of operation provides flicker-free animation and scrolling. Double-buffered output, while always supported, is not required. PegX can also be configured to do all drawing directly to visible video memory. Screen Driver TemplatesA full set of screen driver templates are provided for 1-bpp (monochrome) through 24-bpp (TrueColor RGB) video output. These template drivers are designed to work with any CPU architecture that supports direct, linear access to the video memory buffer Examples of such architectures include: The screen driver templates are capable of supporting any screen resolution from 1 x 1 to 65535 x 65535 pixels. The PegX screen driver templates require that the software developer provide only three functions to build a complete working GUI:
Accelerated Screen DriversMany embedded controllers such as the Elan, ARM, and PowerPC CPUs provide integrated video control functionality with limited acceleration features. These controllers work best using one of the template drivers listed above. On the other hand, several popular external video controllers are also applied to embedded applications where higher performance is required. PegScreen driver classes tuned to take advantage of the hardware acceleration features of many of these external video controllers are also available. Customized driver classes are currently available for the following video controllers: EPSON SPC8106 VGA LCD/CRT Controller Custom PegScreen drivers for additional video controllers are available on request. Development Environment Screen DriversAs stated above, it is often useful to run PEG in a PC development environment regardless of your final target architecture. This allows software and hardware development to proceed in parallel, shortening time to market for a new design. The PEG development package always ships with the following PegScreen driver classes to facilitate this type of concurrent development:
|

