Share via


GPE Base Classes (Compact 2013)

3/26/2014

This section contains descriptions of graphics primitive engine (GPE) programming elements.

The GPE base-class library is a device-independent bitmap (DIB) driver that manages default drawing, acting as the display driver's model device driver (MDD) upper layer. GPE can use the emulation library, ClearType, anti-aliasing, and gradient fill.

GPE and Video Adapters

The GPE base-class library implements all basic drawing functions for video adapters that have the following characteristics:

  • Video buffers are accessible in system address space.
  • Video buffer is nonbanked.
  • Video buffer is nonplanar and has one plane.
  • Video buffers have 1, 2, 4, 8, 16, 24, or 32 bits per pixel (bpp). A 5-bpp, 6-bpp, or 15-bpp driver cannot be based on GPE.
  • GPE enables device-specific accelerations for the drawing of either raster (bitmap) or vector (lines and filled areas) graphic primitives. You can tune the performance of a given display solution to use whatever hardware drawing support is available.

GPE Source Code

The source code for Gpe.lib is in %_WINCEROOT%\Public\Common\OAK\Drivers\Display\GPE.

Raster drawing functions are commonly referred to as blits. GPE relies on the emulation library for basic raster drawing support.

The source files for Emul.lib are in the Platform Builder directory tree in %_WINCEROOT%\Public\Common\OAK\Drivers\Display\Emul. To remove the emulation library, set SYSGEN_GPE_NOEMUL.

Frame Buffer Requirements

The GPE classes require that your display hardware use a linear-frame buffer; that is, the display's memory must lie in a contiguous memory range. Modifying the GPE classes to use a noncontiguous frame buffer requires significant effort.

GPE Base Classes and Multithreading

To support multithreading, GPE ensures that calls into the display driver from GWES and GDI middleware components are properly serialized, synchronized, and packaged. Therefore, multithreading will work correctly as long as you do not create threads in your display drivers.

In This Section

  • GPE
    Serves as a base from which to implement individual display drivers.
  • GPESurf
    Represents a surface allocated by the driver or by the graphics device interface (GDI).
  • Node2D
    Helper class for display devices that allocate memory as single rectangular blocks.

See Also

Reference

DirectDraw Display Driver Reference

Other Resources

Display Drivers