Overview
FM4, S6E2DH/S6E2DF/S6E2D5/S6E2D3 Series, 32-Bit Microcontroller, Graphic Driver User Manual, Doc. No. 002-04387 Rev. *A
18
4.4 Overview Pixel Engine (PixEng)
4.4.1 Pixel Engine
The Pixel Engine is a hardware IP that efficiently performs pixel operations on two-dimensional memory blocks. It
reads simultaneously from up to three source rectangles, executes pixel processing operations on these and stores
the result in another rectangular memory region.
The Pixel Engine functionality is covered by the Pixel Engine API of the 2D Graphics Driver. The Pixel Engine API
uses the concept of ’surface objects’ and ’context objects’ to perform all operations. Surface objects are created and
bound to a context to perform blit operations to the memory and deleted when no longer needed. A context needs
always a surface bound to the STORE target where the resulting pixel data will be stored. Depending on the
requested operation a SRC, DST and MASK surface must also be bound to the context. SRC, DST and MASK
surfaces define the pixel sources for a blit operation. A surface object can be associated to a memory address to
operate with this memory. It is also possible to use a surface without an attached memory address and use it as a
blit source. In this case only some properties such as the clear color and geometry are used.
Figure 7. PixEng usage
The active API calls (processing and writing pixel data) of the Pixel Engine API are mmlGdcPeFill and
mmlGdcPeBlt. The mmlGdcPeFill call with a previously attached store surface can be used to fill a buffer.
mmlGdcPeBlt can be used for all other operations like copying, scaling, rotation, blending and color manipulating
processing and combinations of them. The surfaces bound to the context and the properties set to the context define
the requested operations. The following table shows the required and optional surfaces to perform an operation.