This chapter includes:
The graphics drivers are independent of the Photon microGUI; the driver that
you supply is implemented as one or more shared objects (your choice)
that can be used by Photon or by any other application requiring
the services of a graphics driver.
You provide a set of well defined entry points, and the appropriate
graphics system dynamically loads your driver and calls the entry points.
By way of example, this is how your driver interacts with Photon and
the graphics driver subsystem,
io-graphics,
under QNX Neutrino:

How a driver interacts with Photon.
As you can see from the above diagram, a set of Photon infrastructure
components are responsible for the interface to Photon:
- Connector
- Presents the graphical region to Photon.
This is the area that's defined to be shown on the graphical screen.
- Draw stream interpreter
- Interprets Photon's draw stream and
decodes the graphical commands into scans, bitmaps, images, and fills,
and passes them to the graphics driver.
The interpreter also converts the draw stream from whatever endian
format it's in to native-endian format.
- Render library
- Converts complex shapes (such as circles) into lower-level
drawing primitives (scans, bitmaps, images, and fills)
that the graphics driver can handle.
- Font manager
- Converts textual information into bitmaps.
- Rasterizer (FFB)
- Converts lower-level drawing primitives into a raster format,
using the Flat Frame Buffer (FFB) library.
- Graphics driver
- Your graphics driver, supplied as one or more shared objects.