The following figure is an example of shearing a picture by modifying the transformation matrix directly.
MATRIXLF matlfTransform;
POINTL ptlStart, ptlEnd;
ptlStart.x = 500; /* x coordinate, lower-left corner of box */
ptlStart.y = 300; /* y coordinate, lower-left corner of box */
GpiMove(hps, &ptlStart);
ptlEnd.x = 700; ; /* x coordinate, upper-right corner of box */
ptlEnd.y = 500; ; /* y coordinate, upper-right corner of box */
GpiBox(hps, DRO_OUTLINE, &ptlEnd, 0, 0); /* Draw first box */
matlfTransform.fxM11 = MAKEFIXED(1, 0);
matlfTransform.fxM12 = MAKEFIXED(0, 0);
matlfTransform.lM13 = 0;
matlfTransform.fxM21 = MAKEFIXED(0, 65536 / 2); /* Shear factor .5 */
matlfTransform.fxM22 = MAKEFIXED(1, 0);
matlfTransform.lM23 = 0;
matlfTransform.lM31 = 200; /* Translate 200 units right */
matlfTransform.lM32 = 0;
matlfTransform.lM33 = 1;
GpiSetDefaultViewMatrix(hps, 9, &matlfTransform, TRANSFORM_REPLACE);
GpiMove(hps, &ptlStart);
GpiBox(hps, DRO_OUTLINE, &ptlEnd, 0, 0); /* Draw sheared box */