The key feature of PTC |
PTC is much more than just a mode setting library, surface handler or API wrapper because it provides something that other graphics libraries do not: virtual display modes.
Virtual display modes enable the programmer
to work internally in 8 bit indexed color, RGB565 hicolor, or ARGB8888
truecolor independently of the display pixel format. PTC can even emulate
truecolor on VGA compatible displays when truecolor is not available.
How virtual modes work |
When a virtual mode set is requested PTC searches
for a mode with the closest display pixel format. For example, a VIRTUAL32
mode set searches for a mode with the closest pixel format to ARGB8888
truecolor. This means that the display format could be ARGB8888, RGB565,
ARGB1555 or even a VGA emulated mode, and PTC will automatically convert
to that format on each display update. PTC does this so quickly that there
is no significant overhead in conversion.
Benefits of virtual modes |
The benefits of working virtually in a single pixel format are significant. Take the case of a software polygon filling routine. Either one pixel format is supported only, or the filler must be made to support each possible display format. The problem with choosing a single pixel format is obvious, with hicolor and truecolor graphics it can not be assumed that any one pixel format will exist across all video cards. To support all possible display formats requires either writing a version of the polygon filler for each possible format, or to use a slower generic routine that can work in any format. Clearly neither choice is ideal.
The problem then is how to support all video
hardware without needing to write excessive amounts of code or fall back
to slower routines. This is where PTC provides a tidy solution: with virtual
modes you get all the benefits of working in a single internal pixel format
and support for all common display formats.